forked from OSchip/llvm-project
146 lines
8.1 KiB
HTML
Executable File
146 lines
8.1 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>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">
|
|
<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</h1>
|
|
<div class="postcontent">
|
|
<p>This document describes the steps needed to compile LLDB on most Linux systems.</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>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></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>> yum install swig python-devel libedit-devel</code>
|
|
<p>On an Ubuntu system one might run:</p>
|
|
<code>> sudo apt-get install swig python-dev libedit-dev </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>> svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm</code>
|
|
|
|
<p>Now switch to LLVM’s tools subdirectory and checkout both Clang and LLDB:</p>
|
|
<code>> cd $llvm/tools
|
|
<br>> svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
|
|
<br>> 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’s <em>Getting Started Guide</em>. A typical build procedure
|
|
might be:</p>
|
|
<code>> cd $llvm/..
|
|
<br>> mkdir build
|
|
<br>> cd build
|
|
</code>
|
|
<p>If you are using clang:</p>
|
|
<code>
|
|
<br>> $llvm/configure --enable-cxx11
|
|
<br>> make </code>
|
|
<p>If you are using GCC 4.6+:</p>
|
|
<code>
|
|
<br>> $llvm/configure
|
|
<br>> make CXXFLAGS=-std=c++0x</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), you should 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>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>> 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>> python -c 'import lldb'</code></p>
|
|
</div>
|
|
<div class="postfooter"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|