<!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 is not ported
					(to enable remote debugging) and there are some stability issues, most
					of the basic functionality, including the Python API and the commandline tool,
					are working on i386/x86_64 architectures. ARM architectures on Linux are untested.
					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. Windows support is under development.
							<table border="1">
								<tr>
									<th>Feature</th>
									<th>Linux<br>(i386 and x86_64)</th>
									<th>Mac OS X (i386/x86_64 and ARM/Thumb)</th>
								</tr>
								<tr>
									<td>Backtracing</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>
								</tr>
								<tr>
									<td>C++11:
									<ul>
										<li>function access
										<li>template support
										<li>dynamic types
									</ul></td>
									<td>OK</td>
									<td>OK</td>
								</tr>
								<tr>
									<td>Commandline lldb tool</td>
									<td>OK</td>
									<td>OK</td>
								</tr>
								<tr>
									<td>Debugserver (remote debugging)</td>
									<td>Not ported</td>
									<td>OK</td>
								</tr>
								<tr>
									<td>Disassembly</td>
									<td>OK</td>
									<td>OK</td>
								</tr>
								<tr>
									<td>Expression evaluation</td>
									<td>Works with some bugs</td>
									<td>OK</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>Not applicable</td>
									<td>OK</td>
								</tr>
								<tr>
									<td>Process control
										<ul>
											<li>launch
											<li>attach
											<li>continue
										</ul>
									</td>
									<td>OK except attach-by-name </td>
									<td>OK</td>
								</tr>
								<tr>
									<td>Public Python API</td>
									<td>OK</td>
									<td>OK</td>
								</tr>
								<tr>
									<td>Script bridging</td>
									<td>OK</td>
									<td>OK</td>
								</tr>
								<tr>
									<td>Symbol reading and object file introspection</td>
									<td>OK</td>
									<td>OK</td>
								</tr>
								<tr>
									<td>Thread inspection and stepping</td>
									<td>OK for single thread (no multi-threaded support)</td>
									<td>OK</td>
								</tr>
								<tr>
									<td>Watchpoints</td>
									<td>OK</td>
									<td>OK</td>
								</tr>
							</table>
				</div>
				<div class="postfooter"></div>
			</div>
		</div>
	</div>
</div>
</body>
</html>
