<!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 except on C++ exception (catch/throw)</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>Broken</td>
									<td>OK</td>
								</tr>
							</table>
				</div>
				<div class="postfooter"></div>
			</div>
		</div>
	</div>
</div>
</body>
</html>
