forked from OSchip/llvm-project
228 lines
11 KiB
HTML
Executable File
228 lines
11 KiB
HTML
Executable File
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
<link href="style.css" rel="stylesheet" type="text/css" />
|
|
<title>LLDB Status</title>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="www_title">
|
|
The <strong>LLDB</strong> Debugger
|
|
</div>
|
|
|
|
<div id="container">
|
|
<div id="content">
|
|
<!--#include virtual="sidebar.incl"-->
|
|
|
|
<div id="middle">
|
|
<div class="post">
|
|
<h1 class ="postheader">Mac OS X Status</h1>
|
|
<div class="postcontent">
|
|
|
|
<p>LLDB has matured a lot in the last year and can be used for
|
|
C, C++ and Objective C development for x86_64, i386 and ARM debugging.
|
|
The entire public API is exposed though a framework on Mac OS X which
|
|
is used by Xcode, the lldb command line tool, and can also be used by
|
|
Python. The entire public API is exposed through script bridging which
|
|
allows LLDB to use an embedded Python script interpreter, as well as
|
|
having a Python module named "lldb" which can be used from Python
|
|
on the command line. This allows debug sessions to be scripted. It also
|
|
allows powerful debugging actions to be created and attached to a variety
|
|
of debugging workflows.</p>
|
|
</div>
|
|
<h1 class ="postheader">Linux Status</h1>
|
|
<div class="postcontent">
|
|
<p> LLDB is improving on Linux. While the debugserver has not been ported
|
|
(to enable remote debugging) Linux is nearing feature completeness with Darwin
|
|
to debug x86_64 programs, and is partially working with i386 programs.
|
|
ARM architectures on Linux are untested.
|
|
For more details, see the Features by OS section below.
|
|
</div>
|
|
<h1 class ="postheader">FreeBSD Status</h1>
|
|
<div class="postcontent">
|
|
<p> LLDB on FreeBSD lags behind the Linux implementation but is improving rapidly.
|
|
For more details, see the Features by OS section below.
|
|
</div>
|
|
<h1 class ="postheader">Windows Status</h1>
|
|
<div class="postcontent">
|
|
<p> LLDB on Windows is still under development, but already useful for i386
|
|
programs (x86_64 untested) built with DWARF debug information, including postmortem
|
|
analysis of minidumps.
|
|
For more details, see the Features by OS section below.
|
|
</div>
|
|
<h1 class ="postheader">Features by OS</h1>
|
|
<div class="postcontent">
|
|
<p> The table below shows a summary of the features that are available
|
|
on several platforms. In addition to Linux and Mac OS X, LLDB is also
|
|
known to work on FreeBSD. NetBSD support is under development.
|
|
<table border="1">
|
|
<tr>
|
|
<th>Feature</th>
|
|
<th>FreeBSD<br>(x86_64)</th>
|
|
<th>Linux<br>(x86_64 and PPC64le)</th>
|
|
<th>Mac OS X (i386/x86_64 and ARM/Thumb)</th>
|
|
<th>Windows (i386)</th>
|
|
</tr>
|
|
<tr>
|
|
<td>Backtracing</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Breakpoints
|
|
<ul>
|
|
<li>source-line
|
|
<li>symbolic
|
|
<li>C++ mangled names
|
|
<li>module scoping
|
|
</ul>
|
|
</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
</tr>
|
|
<tr>
|
|
<td>C++11:
|
|
<ul>
|
|
<li>function access
|
|
<li>template support
|
|
<li>dynamic types
|
|
</ul></td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>Unknown</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Commandline lldb tool</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Core file debugging</td>
|
|
<td>OK (ELF)</td>
|
|
<td>OK (ELF)</td>
|
|
<td>OK (MachO)</td>
|
|
<td>OK (Minidump)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Debugserver (remote debugging)</td>
|
|
<td>Not ported</td>
|
|
<td>Not ported</td>
|
|
<td>OK</td>
|
|
<td>Not ported</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Disassembly</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Expression evaluation</td>
|
|
<td>Unknown</td>
|
|
<td>Works with some bugs</td>
|
|
<td>OK</td>
|
|
<td>Works with some bugs</td>
|
|
</tr>
|
|
<tr>
|
|
<td>JIT debugging</td>
|
|
<td>Unknown</td>
|
|
<td>Symbolic debugging only</td>
|
|
<td>Untested</td>
|
|
<td>No</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Objective-C 2.0:
|
|
<ul>
|
|
<li>printing properties
|
|
<li>synthetic properties
|
|
<li>expressions
|
|
<li>KVO
|
|
<li>dynamic types
|
|
<li>dot syntax
|
|
<li>runtime data
|
|
<li>stepping into/over
|
|
<li>printing the description of an object ("po")
|
|
</ul></td>
|
|
<td>Unknown</td>
|
|
<td>Not applicable</td>
|
|
<td>OK</td>
|
|
<td>Not applicable</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Process control
|
|
<ul>
|
|
<li>attach
|
|
<li>continue
|
|
<li>exec, execve...
|
|
<li>fork
|
|
<li>launch
|
|
<li>status
|
|
</ul>
|
|
</td>
|
|
<td>Works, with some bugs</td>
|
|
<td>OK (except exec*)</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Public Python API</td>
|
|
<td>OK (Python 2.7)</td>
|
|
<td>OK (Python 2.7)</td>
|
|
<td>OK (Python 2.7)</td>
|
|
<td>OK (Python 3.5)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Registers (x86_64 and i386)
|
|
<ul>
|
|
<li>general purpose
|
|
<li>floating point
|
|
<li>exception state
|
|
<li>SSE
|
|
<li>AVX
|
|
</ul>
|
|
</td>
|
|
<td>GP and FP OK</td>
|
|
<td>OK (except for exception state registers)</td>
|
|
<td>OK</td>
|
|
<td>OK (except for AVX support)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Symbol reading and object file introspection</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK (no PDB yet)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Thread inspection and stepping</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Watchpoints</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>OK</td>
|
|
<td>Not ported yet</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="postfooter"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|