<!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 Homepage</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">What is LLDB?</h1>
				<div class="postcontent">
                    <p>LLDB is a next generation, high-performance debugger. It is built as a set
                        of reusable components which highly leverage existing libraries in the
                        larger LLVM Project, such as the Clang expression parser and LLVM
                        disassembler.</p>
                    <p>LLDB is the default debugger in Xcode on Mac OS X and supports
                        debugging C, Objective-C and C++ on the desktop and iOS devices and simulator.</p>

                    <p>All of the code in the LLDB project is available under the standard
                        <a href="http://llvm.org/docs/DeveloperPolicy.html#license">LLVM
                        License</a>, an open source "BSD-style" license.</p>
                </div>
    			<div class="postfooter"></div>
			</div>

			<div class="post">
				<h1 class ="postheader">Why a new debugger?</h1>
				<div class="postcontent">
					  <p>In order to achieve our goals we decided to start with a fresh architecture
					     that would support modern multi-threaded programs, handle debugging symbols
					     in an efficient manner, use compiler based code knowledge and have plug-in
					     support for functionality and extensions. Additionally we want the debugger
					     capabilities to be available to other analysis tools, be they scripts or
					     compiled programs, without requiring them to be GPL.</p>
				</div>
				<div class="postfooter"></div>
			</div>

			<div class="post">
				<h1 class ="postheader">Compiler Integration Benefits</h1>
				<div class="postcontent">
						<p>LLDB currently converts debug information into clang types so that
						it can leverage the clang compiler infrastructure.
						This allows LLDB to support the latest C, C++, Objective-C and Objective-C++
						language features and runtimes in expressions without having to reimplement <b>any</b> 
						of this functionality. It also leverages the compiler to take care of all ABI
						details when making functions calls for expressions, when disassembling
						instructions and extracting instruction details, and much more. 
				   	<p>The major benefits include:</p>
				   	<ul>
					   	<li>Up to date language support for C, C++, Objective-C</li>
					   	<li>Multi-line expressions that can declare local variables and types</li>
					   	<li>Utilize the JIT for expressions when supported</li>
					   	<li>Evaluate expression Intermediate Representation (IR) when JIT can't be used</li>
				    </ul>
				</div>
			</div>

			<div class="post">
				<h1 class ="postheader">Reusability</h1>
				<div class="postcontent">
				   	<p>The LLDB debugger APIs are exposed as a C++ object oriented interface in a shared library. 
					The <b>lldb</b> command line tool links to, and uses this public API. On Mac OS X the shared library
					is exposed as a framework named <b>LLDB.framework</b>, and unix systems expose it as <b>lldb.so</b>.
					The entire API is also then exposed through Python script bindings which allow the API to be used
					within the LLDB embedded script interpreter, and also in any python script that loads the <b>lldb.py</b>
					module in standard python script files. See the <a href="python-reference.html">Python Reference</a> page for more details on how 
					and where Python can be used with the LLDB API.</p>
					<p>Sharing the LLDB API allows LLDB to not only be used for debugging, but also for symbolication,
						disassembly, object and symbol file introspection, and much more.
				</div>
			</div>

			<div class="post">
				<h1 class ="postheader">Platform Support</h1>
				<div class="postcontent">

				   	<p>LLDB is known to work on the following platforms, but ports to new
				       platforms are welcome:</p>
				   	<ul>
					   	<li>Mac OS X desktop user space debugging for i386 and x86-64</li>
					   	<li>iOS simulator debugging on i386</li>
					   	<li>iOS device debugging on ARM</li>
					   	<li>Linux local user-space debugging for i386, x86-64 and PPC64le</li>
					   	<li>FreeBSD local user-space debugging for i386 and x86-64</li>
					   	<li>Windows local user-space debugging for i386 (*)</li>
				    </ul>
				    <p>(*) Support for Windows is under active development.  Basic functionality
				       is expected to work, with functionality improving rapidly.</p>
				</div>
				<div class="postfooter"></div>
			</div>


			<div class="post">
				<h1 class ="postheader">Get it and get involved!</h1>
				<div class="postcontent">

				    <p>To check out the code, use:</p>

				    <ul>
				        <li>git clone https://github.com/llvm/llvm-project.git</li>
				    </ul>

				    <p>Note that LLDB generally builds from top-of-trunk</p>
						<ul>
								<li>On Mac OS X with Xcode</li>
								<li>On Linux and FreeBSD (with clang and libstdc++/libc++)</li>
								<li>On NetBSD (with GCC and clang and libstdc++/libc++)</li>
								<li>On Windows with VS 2012 or higher using CMake</li>
						</ul>
						<p>See the <a href="build.html">LLDB Build Page</a> for platform-specific build instructions.</p>
				    <p>Discussions about LLDB should go to the <a href="http://lists.llvm.org/mailman/listinfo/lldb-dev">lldb-dev</a> mailing
				        list.  Commit messages for the lldb SVN module are automatically sent to the
				        <a  href="http://lists.llvm.org/mailman/listinfo/lldb-commits">lldb-commits</a>
				        mailing list, and this is also the preferred mailing list for patch
				        submissions.</p>
                                    <p>See the <a href="projects.html">Projects</a> page if you are looking for some interesting areas to contribute 
                                      to lldb.</p>
			    </div>
				<div class="postfooter"></div>
			</div>
		</div>
	</div>
</div>
</body>
</html>
