<!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>Building LLDB</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">
                <h1 class ="postheader">Continuous Integraton</h1>
                <div class="postcontent">
                        <p> The following LLVM buildbots build and test LLDB trunk:
                        <ul>
                                <li> <a href="http://lab.llvm.org:8011/builders/lldb-x86_64-debian-clang">LLDB Linux x86_64 build with Clang (automake)</a>
                                <li> <a href="http://lab.llvm.org:8011/builders/lldb-x86_64-linux">LLDB Linux x86_64 build with GCC 4.6 (automake)</a>
                                <li> <a href="http://lab.llvm.org:8011/builders/lldb-x86_64-darwin11">LLDB Mac OS X x86_64 build with Clang (XCode)</a>
                                <li> <a href="http://llvm-amd64.freebsd.your.org:8010/builders/lldb-amd64-freebsd">LLDB FreeBSD x86_64</a>
                                <li> <a href="http://llvm-amd64.freebsd.your.org:8010/builders/lldb-i386-freebsd">LLDB FreeBSD i386</a>
                        </ul>
                </div>
                <div class="postfooter"></div>
    		<div class="post">
    			<h1 class ="postheader">Building LLDB on Mac OS X</h1>
    			<div class="postcontent">
    			    <p>Building on Mac OS X is as easy as downloading the code and building the Xcode project or workspace:</p>
                </div>
                <div class="postcontent">
                    <h2>Preliminaries</h2>
                    <ul>
                        <li>XCode 4.3 or newer requires the "Command Line Tools" component (XCode->Preferences->Downloads->Components).</li>
                        <li>Mac OS X Lion or newer requires installing <a href="http://swig.org">Swig</a>.</li>
                    </ul>
                    <h2>Building LLDB</h2>
    			    <ul>
                        <li><a href="download.html">Download</a> the lldb sources.</li>
                        <li>Follow the code signing instructions in <b>lldb/docs/code-signing.txt</b></li>
                        <li>In Xcode 3.x: <b>lldb/lldb.xcodeproj</b>, select the <b>lldb-tool</b> target, and build.</li>
                        <li>In Xcode 4.x: <b>lldb/lldb.xcworkspace</b>, select the <b>lldb-tool</b> scheme, and build.</li>
    			    </ul>
    			</div>
              	<div class="postfooter"></div>
          	</div>
    		<div class="post">
    			<h1 class ="postheader">Building LLDB on Linux and FreeBSD</h1>
    			<div class="postcontent">
    			    <p>This document describes the steps needed to compile LLDB on most Linux systems, and FreeBSD.</a></p>
    			</div>
    			<div class="postcontent">
                <h2>Preliminaries</h2>
                <p>LLDB relies on many of the technologies developed by the larger LLVM project.
                In particular, it requires both Clang and LLVM itself in order to build.  Due to
                this tight integration the <em>Getting Started</em> guides for both of these projects
                come as prerequisite reading:</p>
			    <ul>
                    <li><a href="http://llvm.org/docs/GettingStarted.html">LLVM</a></li>
                    <li><a href="http://clang.llvm.org/get_started.html">Clang</a></li>
                </ul>
                <p>Supported compilers for building LLDB on Linux include:</p>
                <ul>
                  <li>Clang 3.2</li>
                  <li><a href="http://gcc.gnu.org">GCC</a> 4.6.2 (later versions should work as well)</li>
                </ul>
                <p>It is recommended to use libstdc++ 4.6 (or higher) to build LLDB on Linux, but using libc++ is also known to work.</p>
                <p>On FreeBSD the base system Clang and libc++ may be used to build LLDB,
                or the GCC port or package.</p>
                <p>In addition to any dependencies required by LLVM and Clang, LLDB needs a few
                development packages that may also need to be installed depending on your
                system.  The current list of dependencies are:</p>
    			<ul>
                    <li><a href="http://swig.org">Swig</a></li>
                    <li><a href="http://www.thrysoee.dk/editline">libedit</a> (Linux only)</li>
                    <li><a href="http://www.python.org">Python</a></li>
                </ul>
                <p>So for example, on a Fedora system one might run:</p>
                <code>&gt; yum install swig python-devel libedit-devel</code>
                <p>On an Ubuntu system one might run:</p>
                <code>&gt; sudo apt-get install build-essential subversion swig python-dev libedit-dev </code>
                <p>On FreeBSD one might run:</p>
                <code>&gt; pkg install swig python</code>
                <p>If you wish to build the optional reference documentation, additional dependencies are required:</p>
                <ul>
                  <li> Graphviz (for the 'dot' tool).
                  <li> doxygen (only if you wish to build the C++ API reference)
                  <li> epydoc (only if you wish to build the Python API reference)
                </ul>
                <p>To install the prerequisites for building the documentation (on Ubuntu) do:</p>
                <code>
                  <br>&gt; sudo apt-get install doxygen graphviz
                  <br>&gt; sudo pip install epydoc
                </code>
                <h2 >Building LLDB</h2>
                <p>We first need to checkout the source trees into the appropriate locations.  Both
                Clang and LLDB build as subprojects of LLVM.  This means we will be checking out
                the source for both Clang and LLDB into the <tt>tools</tt> subdirectory of LLVM.  We
                will be setting up a directory hierarchy looking something like this:</p>
                <p>
                <pre><tt>  
                  llvm
                  |
                  `-- tools
                      |
                      +-- clang
                      |
                      `-- lldb
                </tt></pre>
                </p>
                <p>For reference, we will call the root of the LLVM project tree <tt>$llvm</tt>, and the
                roots of the Clang and LLDB source trees <tt>$clang</tt> and <tt>$lldb</tt> respectively.</p>
                <p>Change to the directory where you want to do development work and checkout LLVM:</p>
                <code>&gt; svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm</code>
                
                <p>Now switch to LLVM&#8217;s tools subdirectory and checkout both Clang and LLDB:</p>
                <code>&gt; cd $llvm/tools
                <br>&gt; svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
                <br>&gt; svn co http://llvm.org/svn/llvm-project/lldb/trunk lldb
                </code>
                
                <p>In general, building the LLDB trunk revision requires trunk revisions of both 
                LLVM and Clang.
                <p>It is highly recommended that you build the system out of tree.  Create a second
                build directory and configure the LLVM project tree to your specifications as
                outlined in LLVM&#8217;s <em>Getting Started Guide</em>.  A typical build procedure
                might be:</p>
                <code>&gt; cd $llvm/..
                  <br>&gt; mkdir build
                  <br>&gt; cd build
                </code>
                <h2>To build with CMake</h2>
                <p>Using CMake is documented on the <a href="http://llvm.org/docs/CMake.html">Building LLVM with CMake</a>
                   page. Building LLDB is possible using one of the following generators:
                </p>
                <ul>
                  <li> Ninja </li>
                  <li> Unix Makefiles </li>
                </ul>
                <h3>Using CMake + Ninja</h3>
                <p>Ninja is the fastest way to build LLDB! In order to use ninja, you need to have recent versions of CMake and
                   ninja on your system. To build using ninja:
                </p>
                <code>
                  &gt; cmake .. -G Ninja
                  <br>&gt; ninja lldb
                  <br>&gt; ninja check-lldb
                </code>
                <h3>Using CMake + Unix Makefiles</h3>
                <p>If you do not have Ninja, you can still use CMake to generate Unix Makefiles that build LLDB:</p>
                <code>
                  &gt; cmake ..
                  <br>&gt; make
                  <br>&gt; make check-lldb
                </code>
                <h2>To build with autoconf</h2>
                <p>If you do not have CMake, it is still possible to build LLDB using the autoconf build system. If you are using
                   Clang or GCC 4.7+, run:</p>
                <code>
                  &gt; $llvm/configure --enable-cxx11
                  <br>&gt; make </code>
                <p>Or, if you are using a version of GCC that does not support the <tt>-std=c++11</tt> option:</p>
                <code>
                  &gt; $llvm/configure
                  <br>&gt; make CXXFLAGS=-std=c++0x</code>
                <p>If you are building with a GCC that isn't the default gcc/g++, like gcc-4.7/g++-4.7</p>
                <code>
                  &gt; $llvm/configure --enable-cxx11 CC=gcc-4.7 CXX=g++-4.7
                  <br>&gt; make CC=gcc-4.7 CXX=g++-4.7</code>
                <p>If you are running in a system that doesn't have a lot of RAM (less than 4GB), you might want to disable
                    debug symbols by specifying DEBUG_SYMBOLS=0 when running make. You will know if you need to enable this
                    because you will fail to link clang (the linker will get a SIGKILL and exit with status 9).</p>
                <code>
                    &gt; make DEBUG_SYMBOLS=0</code>
                <p> To run the LLDB test suite, run:</p>
                <code>
                  <br>&gt; make -C tools/lldb/test</code>
                <p>Note that once both LLVM and Clang have been configured and built it is not
                necessary to perform a top-level <tt>make</tt> to rebuild changes made only to LLDB.
                You can run <tt>make</tt> from the <tt>build/tools/lldb</tt> subdirectory as well.</p>
                <p> If you wish to build with libc++ instead of libstdc++ (the default), run configure with the
                <tt>--enable-libcpp</tt> flag.</p>
                <p> If you wish to build a release version of LLDB, run configure with the <tt>--enable-optimized</tt> flag.</p>

                <h2>Testing</h2>
                <p>By default, the <tt>check-lldb</tt> target builds the 64-bit variants of the test programs with the same
                compiler that was used to build LLDB. It is possible to customize the architecture and compiler by appending -A and
                -C options respectively to the CMake variable <tt>LLDB_TEST_ARGS</tt>. For example, to test LLDB against 32-bit binaries
                built with a custom version of clang, do:</p>
                <code>
                  <br>&gt; cmake -DLLDB_TEST_ARGS="-A i386 -C /path/to/custom/clang" -G Ninja
                  <br>&gt; ninja check-lldb
                </code>
                <p>Note that multiple -A and -C flags can be specified to <tt>LLDB_TEST_ARGS</tt>.</p>
                <p>In addition to running all the LLDB test suites with the "check-lldb" CMake target above, it is possible to
                run individual LLDB tests. For example, to run the test cases defined in TestInferiorCrashing.py, run:</p>
                <code>
                  <br>&gt; cd $lldb/test
                  <br>&gt; python dotest.py --executable &lt;path-to-lldb&gt;  -p TestInferiorCrashing.py
                </code>
                <p>In addition to running a test by name, it is also possible to specify a directory path to <tt>dotest.py</tt>
                in order to run all the tests under that directory. For example, to run all the tests under the
                'functionalities/data-formatter' directory, run:</p>
                <code>
                  <br>&gt; python dotest.py --executable &lt;path-to-lldb&gt; functionalities/data-formatter
                </code>
                <p>To dump additional information to <tt>stdout</tt> about how the test harness is driving LLDB, run
                <tt>dotest.py</tt> with the <tt>-t</tt> flag. Many more options that are available. To see a list of all of them, run:</p>
                <code>
                  <br>&gt; python dotest.py -h
                </code>
                <h2>Building API reference documentation</h2>
                <p>LLDB exposes a C++ as well as a Python API. To build the reference documentation for these two APIs, ensure you have
                the required dependencies installed, and build the <tt>lldb-python-doc</tt> and <tt>lldb-cpp-doc</tt> CMake targets.</p>
                <p> The output HTML reference documentation can be found in <tt>&lt;build-dir&gt;/tools/lldb/docs/</tt>.<p>
                <h2>Additional Notes</h2>
                <p>LLDB has a Python scripting capability and supplies its own Python module named <tt>lldb</tt>.
                If a script is run inside the command line <tt>lldb</tt> application, the Python module
                is made available automatically.  However, if a script is to be run by a Python interpreter
                outside the command line application, the <tt>PYTHONPATH</tt> environment variable can be used
                to let the Python interpreter find the <tt>lldb</tt> module. 
                <p>The correct path can be obtained by invoking the command line <tt>lldb</tt> tool with the -P flag:</p>
                <code>&gt; export PYTHONPATH=`$llvm/build/Debug+Asserts/bin/lldb -P`</code>
                <p>If you used a different build directory or made a release build, you may need to adjust the
                above to suit your needs. To test that the lldb Python module
                is built correctly and is available to the default Python interpreter, run:</p>
                <code>&gt; python -c 'import lldb'</code></p>
                </div>
              	<div class="postfooter"></div>
          	</div>
      	</div>
	</div>
</div>
</body>
</html>
