Updated the web pages with new navigable web pages.

llvm-svn: 105778
This commit is contained in:
Greg Clayton 2010-06-10 02:48:57 +00:00
parent c3df232164
commit 491fbdf139
9 changed files with 972 additions and 0 deletions

262
lldb/www/architecture.html Executable file
View File

@ -0,0 +1,262 @@
<!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 Architecture</title>
</head>
<body>
<div class="www_title">
The <strong>LLDB</strong> Debugger
</div>
<div id="container">
<div id="content">
<!--#include virtual="leftmenu.html.incl"-->
<div id="middle">
<div class="post">
<h1 class ="postheader">Architecture</h1>
<div class="postcontent">
<p>LLDB is a large and complex codebase. This section will help you become more familiar with
the pieces that make up LLDB and give a general overview of the general architecture.</p>
</div>
<div class="postfooter"></div>
</div>
<div class="post">
<h1 class ="postheader">Code Layout</h1>
<div class="postcontent">
<p>LLDB has many code groupings that makeup the source base:</p>
<ul>
<li><a href="#api">API</a></li>
<li><a href="#breakpoint">Breakpoint</a></li>
<li><a href="#commands">Commands</a></li>
<li><a href="#core">Core</a></li>
<li><a href="#expression">Expression</a></li>
<li><a href="#host">Host</a></li>
<li><a href="#interpreter">Interpreter</a></li>
<li><a href="#symbol">Symbol</a></li>
<li><a href="#targ">Target</a></li>
<li><a href="#utility">Utility</a></li>
</ul>
</div>
<div class="postfooter"></div>
</div>
<a name="api"></a>
<div class="post">
<h1 class ="postheader">API</h1>
<div class="postcontent">
<p>The API folder contains the public interface to LLDB.</p>
<p>We are currently vending a C++ API. In order to be able to add
methods to this API and allow people to link to our classes,
we have certain rules that we must follow:</p>
<ul>
<li>Classes can't inherit from any other classes.</li>
<li>Classes can't contain virtual methods.</li>
<li>Classes should be compatible with script bridging utilities like <a href="http://www.swig.org/">swig</a>.</li>
<li>Classes should be lighweight and be backed by a single object pointer, shared pointer or global variable in the lldb_private.</li>
<li>The interface should be as minimal as possible in order to give a complete API.</li>
</ul>
<p>By adhering to these rules we should be able to continue to
vend a C++ API, and make changes to the API as any additional
methods added to these classes will just be a dynamic loader
lookup and they won't affect the class layout (since they
aren't virtual methods, and no members can be added to the
class).
</div>
<div class="postfooter"></div>
</div>
<a name="breakpoint"></a>
<div class="post">
<h1 class ="postheader">Breakpoint</h1>
<div class="postcontent">
<p>A collection of classes that implement our breakpoint classes.
Breakpoints are resolved symbolically and always continue to
resolve themselves as your program runs. Wether settings breakpoints
by file and line, by symbol name, by symbol regular expression,
or by address, breakpoints will keep trying to resolve new locations
each time shared libraries are loaded. Breakpoints will of course
unresolve themselves when shared libraries are unloaded. Breakpoints
can also be scoped to be set only in a specific shared library. By
default, breakpoints can be set in any shared library and will continue
to attempt to be resolved with each shared library load.</p>
<p>Breakpoint options can be set on the breakpoint,
or on the individual locations. This allows flexibility when dealing
with breakpoints and allows us to do what the user wants.
</div>
<div class="postfooter"></div>
</div>
<a name="commands"></a>
<div class="post">
<h1 class ="postheader">Commands</h1>
<div class="postcontent">
<p>The command source files represent objects that implement
the functionality for all textual commands available
in our command line interface.</p>
<p>Every command is backed by a <b>lldb_private::CommandObject</b>
or <b>lldb_private::CommandObjectMultiword</b> object.</p>
<p><b>lldb_private::CommandObjectMultiword</b> are commands that
have subcommands and allow command line commands to be
logically grouped into a hiearchy.
<p><b>lldb_private::CommandObject</b> command line commands
are the objects that implement the functionality of the
command. They can optionally define
options for themselves, as well as group those options into
logical groups that can go together. The help system is
tied into these objects and can extract the syntax and
option groupings to display appropriate help for each
command.</p>
</div>
<div class="postfooter"></div>
</div>
<a name="core"></a>
<div class="post">
<h1 class ="postheader">Core</h1>
<div class="postcontent">
<p>The Core source files contain basic functionality that
is required in the debugger. A wide variety of classes
are implemented:
<ul>
<li>Address (section offset addressing)</li>
<li>AddressRange</li>
<li>Architecture specification</li>
<li>Broadcaster / Event / Listener </li>
<li>Communication classes that use Connection objects</li>
<li>Uniqued C strings</li>
<li>Data extraction</li>
<li>File specifications</li>
<li>Mangled names</li>
<li>Regular expressions</li>
<li>Source manager</li>
<li>Streams</li>
<li>Value objects</li>
</ul>
</div>
<div class="postfooter"></div>
</div>
<a name="expression"></a>
<div class="post">
<h1 class ="postheader">Expression</h1>
<div class="postcontent">
<p>Expression parsing files cover everything from evaluating
DWARF expressions, to evaluating expressions using
Clang.</p>
<p>The DWARF expression parser has been heavily modified to
support type promotion, new opcodes needed for evaluating
expressions with symbolic variable references (expression local variables,
program variables), and other operators required by
typical expressions such as assign, address of, float/double/long
double floating point values, casting, and more. The
DWARF expression parser uses a stack of lldb_private::Value
objects. These objects know how to do the standard C type
promotion, and allow for symbolic references to variables
in the program and in the LLDB process (expression local
and expression global variables).</p>
<p>The expression parser uses a full instance of the Clang
compiler in order to accurately evaluate expressions.
Hooks have been put into Clang so that the compiler knows
to ask about indentifiers it doesn't know about. Once
expressions have be compiled into an AST, we can then
traverse this AST and either generate a DWARF expression
that contains simple opcodes that can be quickly re-evaluated
each time an expression needs to be evaluated, or JIT'ed
up into code that can be run on the process being debugged.
</div>
<div class="postfooter"></div>
</div>
<a name="host"></a>
<div class="post">
<h1 class ="postheader">Host</h1>
<div class="postcontent">
<p>LLDB tries to abstract itself from the host upon which
it is currently running by providing a host abstraction
layer This layer involves everything from spawning, detaching,
joing and killing native in process threads, to getting
current information about the current host.</p>
<p>Host functionality includes abstraction layers for:
<ul>
<li>Mutexes</li>
<li>Conditions</li>
<li>Timing functions</li>
<li>Thread functions</li>
<li>Host target triple</li>
<li>Host child process notifications</li>
<li>Host specific types</li>
</ul>
</div>
<div class="postfooter"></div>
</div>
<a name="interpreter"></a>
<div class="post">
<h1 class ="postheader">Interpreter</h1>
<div class="postcontent">
<p>The interpreter classes are the classes responsible for
being the base classes needed for each command object,
and is responsible for tracking and running command line
commands.
</div>
<div class="postfooter"></div>
</div>
<a name="symbol"></a>
<div class="post">
<h1 class ="postheader">Symbol</h1>
<div class="postcontent">
<p>Symbol classes involve everything needed in order to parse
object files and debug symbols. All the needed classes
for compilation units (code and debug info for a source file),
functions, lexical blocks within functions, inlined
functions, types, declaration locations, and variables
are in this section.</p>
</div>
<div class="postfooter"></div>
</div>
<a name="targ"></a>
<div class="post">
<h1 class ="postheader">Target</h1>
<div class="postcontent">
<p>Classes that are related to a debug target include:</p>
<ul>
<li>Target</li>
<li>Process</li>
<li>Thread</li>
<li>Stack frames</li>
<li>Stack frame registers</li>
<li>ABI for function calling in process being debugged</li>
<li>Execution context batons</li>
</ul>
</div>
<div class="postfooter"></div>
</div>
<a name="utility"></a>
<div class="post">
<h1 class ="postheader">Utility</h1>
<div class="postcontent">
<p>Utility files should be as stand alone as possible are
are available for LLDB and any plug-ins or related
applications to use.<\p>
<p>Files found in the Utility section include:</p>
<ul>
<li>Pseudo-terminal support</li>
<li>Register numbering for specific architectures.</li>
<li>String data extractors</li>
</ul>
</div>
<div class="postfooter"></div>
</div>
</div>
</div>
</div>
</body>
</html>

64
lldb/www/docs.html Executable file
View File

@ -0,0 +1,64 @@
<!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 Documentation</title>
</head>
<body>
<div class="www_title">
The <strong>LLDB</strong> Debugger
</div>
<div id="container">
<div id="content">
<div id="left">
<div class="urbangreymenu">
<h1 class="headerbar">General</h1>
<ul>
<li><a href="index.html">About</a></li>
<li><a href="architecture.html">Architecture</a></li>
<li><a href="docs.html">Documentation</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="features.html">Features</a></li>
<li><a href="goals.html">Goals</a></li>
<li><a href="status.html">Status</a></li>
</ul>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Mailing Lists</h1>
<ul>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">lldb-dev</a></li>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits">lldb-commits</a></li>
</ul>
</div>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Source</h1>
<ul>
<li><a href="download.html">Download</a></li>
<li><a href="http://llvm.org/bugs">Bug Reports</a></li>
<li><a href="http://llvm.org/svn/llvm-project/lldb/trunk">Browse SVN</a></li>
<li><a href="http://llvm.org/viewvc/llvm-project/lldb/trunk">Browse ViewVC</a></li>
</ul>
</div>
</div>
</div>
<div id="middle">
<div class="post">
<h1 class ="postheader">Documentation</h1>
<div class="postcontent">
<p>LLDB is partially documented with header documentation that can be
parsed and viewed with <a href="http://www.stack.nl/~dimitri/doxygen/">doxygen.</a></p>
<p>This page will soon be filled with doxygen links for easy online viewing.</p>
</div>
<div class="postfooter"></div>
</div>
</div>
</div>
</div>
</body>
</html>

78
lldb/www/download.html Executable file
View File

@ -0,0 +1,78 @@
<!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 FAQ</title>
</head>
<body>
<div class="www_title">
The <strong>LLDB</strong> Debugger
</div>
<div id="container">
<div id="content">
<div id="left">
<div class="urbangreymenu">
<h1 class="headerbar">General</h1>
<ul>
<li><a href="index.html">About</a></li>
<li><a href="architecture.html">Architecture</a></li>
<li><a href="docs.html">Documentation</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="features.html">Features</a></li>
<li><a href="goals.html">Goals</a></li>
<li><a href="status.html">Status</a></li>
</ul>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Mailing Lists</h1>
<ul>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">lldb-dev</a></li>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits">lldb-commits</a></li>
</ul>
</div>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Source</h1>
<ul>
<li><a href="download.html">Download</a></li>
<li><a href="http://llvm.org/bugs">Bug Reports</a></li>
<li><a href="http://llvm.org/svn/llvm-project/lldb/trunk">Browse SVN</a></li>
<li><a href="http://llvm.org/viewvc/llvm-project/lldb/trunk">Browse ViewVC</a></li>
</ul>
</div>
</div>
</div>
<div id="middle">
<div class="post">
<h1 class ="postheader">Downloading LLDB sources</h1>
<div class="postcontent">
<p>Obtaining read only access to the LLDB sources is easy:</p>
<ul>
<li>svn co http://llvm.org/svn/llvm-project/lldb/trunk lldb</li>
</ul>
</div>
<div class="postfooter"></div>
</div>
<div class="post">
<h1 class ="postheader">Committing LLDB sources</h1>
<div class="postcontent">
<p>If you wish to contribute to LLDB, you must first get commit access by
<a href="http://llvm.org/docs/DeveloperPolicy.html#commitaccess">requesting commit access</a></p>
<p>Once you have commit access, you will have a <b>USERNAME</b> and you can checkout the sources:
<a href="http://llvm.org/docs/DeveloperPolicy.html#commitaccess">requesting commit access</a></p>
<ul>
<li>svn co https://USERNAME@llvm.org/svn/llvm-project/lldb/trunk lldb</li>
</ul>
</div>
<div class="postfooter"></div>
</div>
</div>
</div>
</div>
</body>
</html>

62
lldb/www/faq.html Executable file
View File

@ -0,0 +1,62 @@
<!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 FAQ</title>
</head>
<body>
<div class="www_title">
The <strong>LLDB</strong> Debugger
</div>
<div id="container">
<div id="content">
<div id="left">
<div class="urbangreymenu">
<h1 class="headerbar">General</h1>
<ul>
<li><a href="index.html">About</a></li>
<li><a href="architecture.html">Architecture</a></li>
<li><a href="docs.html">Documentation</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="features.html">Features</a></li>
<li><a href="goals.html">Goals</a></li>
<li><a href="status.html">Status</a></li>
</ul>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Mailing Lists</h1>
<ul>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">lldb-dev</a></li>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits">lldb-commits</a></li>
</ul>
</div>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Source</h1>
<ul>
<li><a href="download.html">Download</a></li>
<li><a href="http://llvm.org/bugs">Bug Reports</a></li>
<li><a href="http://llvm.org/svn/llvm-project/lldb/trunk">Browse SVN</a></li>
<li><a href="http://llvm.org/viewvc/llvm-project/lldb/trunk">Browse ViewVC</a></li>
</ul>
</div>
</div>
</div>
<div id="middle">
<div class="post">
<h1 class ="postheader">LLDB FAQ</h1>
<div class="postcontent">
<p><b>Q: What targets does LLDB currently support?</b></p>
<p>Mac OS X native debugging for i386 and x86_64 targets.</p>
</div>
<div class="postfooter"></div>
</div>
</div>
</div>
</body>
</html>

92
lldb/www/features.html Executable file
View File

@ -0,0 +1,92 @@
<!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">
<div id="left">
<div class="urbangreymenu">
<h1 class="headerbar">General</h1>
<ul>
<li><a href="index.html">About</a></li>
<li><a href="architecture.html">Architecture</a></li>
<li><a href="docs.html">Documentation</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="features.html">Features</a></li>
<li><a href="goals.html">Goals</a></li>
<li><a href="status.html">Status</a></li>
</ul>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Mailing Lists</h1>
<ul>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">lldb-dev</a></li>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits">lldb-commits</a></li>
</ul>
</div>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Source</h1>
<ul>
<li><a href="download.html">Download</a></li>
<li><a href="http://llvm.org/bugs">Bug Reports</a></li>
<li><a href="http://llvm.org/svn/llvm-project/lldb/trunk">Browse SVN</a></li>
<li><a href="http://llvm.org/viewvc/llvm-project/lldb/trunk">Browse ViewVC</a></li>
</ul>
</div>
</div>
</div>
<div id="middle">
<div class="post">
<h1 class ="postheader">Features</h1>
<div class="postcontent">
<p>LLDB supports a broad variety of basic debugging features such as
reading DWARF, supporting step, next, finish, backtraces, etc. Some
more interested bits are:</p>
<ul>
<li>Plug-in architecture for portability and extensibility:</li>
<ul>
<li>Object file parsers for executable file formats. Support currently
includes Mach-O (32 and 64-bit) &amp; ELF (32-bit).</li>
<li>Object container parsers to extract object files contained within a file.
Support currently includes universal Mach-O files &amp; BSD Archives.
</li>
<li>Debug symbol file parsers to incrementally extract debug information from
object files. Support currently includes DWARF &amp; Mach-O symbol
tables.</li>
<li>Symbol vendor plug-ins collect data from a variety of different sources
for an executable object.</li>
<li>Disassembly plug-ins for each architecture. Support currently includes
an LLVM disassembler for <a href="http://blog.llvm.org/2010/01/x86-disassembler.html">i386, x86-64</a>
, &amp; ARM/Thumb.</li>
<li>Debugger plug-ins implement the host and target specific functions
required to debug.</li>
</ul>
<li>SWIG-generated script bridging allows Python to access and control the
public API of the debugger library.</li>
<li>A remote protocol server, debugserver, implements Mac OS X debugging on
i386 and x86-64.</li>
<li>A command line debugger - the lldb executable itself.</li>
<li>A framework API to the library.</li>
</ul>
</div>
<div class="postfooter"></div>
</div>
</div>
</div>
</div>
</body>
</html>

95
lldb/www/goals.html Executable file
View File

@ -0,0 +1,95 @@
<!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 Goals</title>
</head>
<body>
<div class="www_title">
The <strong>LLDB</strong> Debugger
</div>
<div id="container">
<div id="content">
<div id="left">
<div class="urbangreymenu">
<h1 class="headerbar">General</h1>
<ul>
<li><a href="index.html">About</a></li>
<li><a href="architecture.html">Architecture</a></li>
<li><a href="docs.html">Documentation</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="features.html">Features</a></li>
<li><a href="goals.html">Goals</a></li>
<li><a href="status.html">Status</a></li>
</ul>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Mailing Lists</h1>
<ul>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">lldb-dev</a></li>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits">lldb-commits</a></li>
</ul>
</div>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Source</h1>
<ul>
<li><a href="download.html">Download</a></li>
<li><a href="http://llvm.org/bugs">Bug Reports</a></li>
<li><a href="http://llvm.org/svn/llvm-project/lldb/trunk">Browse SVN</a></li>
<li><a href="http://llvm.org/viewvc/llvm-project/lldb/trunk">Browse ViewVC</a></li>
</ul>
</div>
</div>
</div>
<div id="middle">
<div class="post">
<h1 class ="postheader">Goals</h1>
<div class="postcontent">
<p>The current state of the art in open source debuggers are that
they work in the common cases for C applications, but don't
handle many "hard cases" properly. For example, C++ expression
parsing, handling overloading, templates, multi-threading, and
other non-trivial scenarios all work in some base cases, but
don't work reliably.</p>
<p>The goal of LLDB is to provide an amazing debugging experience that "just
works". We aim to solve these long-standing problems where debuggers get
confused, so that you can think about debugging your problem, not
about deficiencies in the debugger.</p>
<p>With a long view, there is no good reason for a debugger to
reinvent its own C/C++ parser, type system, know all the
target calling convention details, implement its own disassembler,
etc. By using the existing libraries vended by the LLVM
project, we believe that many of these problems will be defined
away, and the debugger can focus on important issues like
process control, efficient symbol reading and indexing, thread
management, and other debugger-specific problems.</p>
<p>Some more specific goals include:</p>
<ul>
<li>Build libraries for inclusion in IDEs, command line tools, and
other analysis tools</li>
<li>High performance and efficient memory use</li>
<li>Extensible: Python scriptable and use a plug-in architecture</li>
<li>Reuse existing compiler technology where it makes sense</li>
<li>Excellent multi-threaded debugging support</li>
<li>Great support for C, Objective-C and C++</li>
<li>Retargetable to support multiple platforms</li>
<li>Provide a base for debugger research and other innovation</li>
</ul>
</div>
<div class="postfooter"></div>
</div>
</div>
</div>
</body>
</html>

120
lldb/www/index.html Executable file
View File

@ -0,0 +1,120 @@
<!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">
<div id="left">
<div class="urbangreymenu">
<h1 class="headerbar">General</h1>
<ul>
<li><a href="index.html">About</a></li>
<li><a href="architecture.html">Architecture</a></li>
<li><a href="docs.html">Documentation</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="features.html">Features</a></li>
<li><a href="goals.html">Goals</a></li>
<li><a href="status.html">Status</a></li>
</ul>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Mailing Lists</h1>
<ul>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">lldb-dev</a></li>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits">lldb-commits</a></li>
</ul>
</div>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Source</h1>
<ul>
<li><a href="download.html">Download</a></li>
<li><a href="http://llvm.org/bugs">Bug Reports</a></li>
<li><a href="http://llvm.org/svn/llvm-project/lldb/trunk">Browse SVN</a></li>
<li><a href="http://llvm.org/viewvc/llvm-project/lldb/trunk">Browse ViewVC</a></li>
</ul>
</div>
</div>
</div>
<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 in early development, but is mature enough to support basic
debugging scenarios on Mac OS X in C, Objective-C and C++.</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">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 i386 and x86-64</li>
</ul>
</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>svn co http://llvm.org/svn/llvm-project/lldb/trunk lldb</li>
</ul>
<p>Note that LLDB currently only builds out of the box on Mac OS X with
Xcode, but patches to improve portability are definitely welcome.</p>
<p>Discussions about LLDB should go to the <a href="http://lists.cs.uiuc.edu/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.cs.uiuc.edu/mailman/listinfo/lldb-commits">lldb-commits</a>
mailing list, and this is also the preferred mailing list for patch
submissions.</p>
</div>
<div class="postfooter"></div>
</div>
</div>
</div>
</div>
</body>
</html>

103
lldb/www/status.html Executable file
View File

@ -0,0 +1,103 @@
<!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">
<div id="left">
<div class="urbangreymenu">
<h1 class="headerbar">General</h1>
<ul>
<li><a href="index.html">About</a></li>
<li><a href="architecture.html">Architecture</a></li>
<li><a href="docs.html">Documentation</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="features.html">Features</a></li>
<li><a href="goals.html">Goals</a></li>
<li><a href="status.html">Status</a></li>
</ul>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Mailing Lists</h1>
<ul>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">lldb-dev</a></li>
<li><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits">lldb-commits</a></li>
</ul>
</div>
</div>
<div class="menu">
<div class="urbangreymenu">
<h1 class="headerbar">Source</h1>
<ul>
<li><a href="download.html">Download</a></li>
<li><a href="http://llvm.org/bugs">Bug Reports</a></li>
<li><a href="http://llvm.org/svn/llvm-project/lldb/trunk">Browse SVN</a></li>
<li><a href="http://llvm.org/viewvc/llvm-project/lldb/trunk">Browse ViewVC</a></li>
</ul>
</div>
</div>
</div>
<div id="middle">
<div class="post">
<h1 class ="postheader">Status</h1>
<div class="postcontent">
<p>LLDB is in early development and supports basic debugging scenarios on
Mac OS X. The public API has not been finalized, and different parts are
at different levels of maturity. We welcome any help fleshing out missing
pieces and improving the code.</p>
<p>What works well:</p>
<ul>
<li>Process control, including external process control via debugserver
(which is included as part of the lldb project)</li>
<li>Breakpoints: Source-line, symbolic, C++ mangled names, module
scoping</li>
<li>Symbol reading and object file introspection</li>
<li>Script bridging</li>
<li>Thread inspection and stepping</li>
<li>Disassembly of i386, x86-64, &amp; ARM/Thumb machine code, and
backtracing on i386 &amp; x86-64</li>
<li>The basic command line prompt system, shared library tracking,
source listings.</li>
</ul>
<p>What is still pretty new:</p>
<ul>
<li>The public API to the library</li>
<li>Expression evaluation</li>
<li>Objective-C support: stepping into/over, printing the description of
an object ("po")</li>
<li>Breakpoint actions &amp; scripts</li>
<li>Attaching to existing processes</li>
</ul>
<p>What isn't there yet:</p>
<ul>
<li>Regression test suite</li>
<li>Operating system support hasn't been fully modularized yet</li>
<li><a href="http://clang.llvm.org/docs/LanguageExtensions.html#blocks">Blocks</a> support</li>
<li>Calling functions in expressions</li>
<li>Objective-C 2.0 Support: Printing properties, synthetic properties,
Objective-C expressions, KVO, dynamic types, dot syntax, runtime data</li>
<li>C++ support: Method access, handling demangled names, dynamic types</li>
<li>Exception support: Breaking by name, thrown object, thrower</li>
</ul>
</div>
<div class="postfooter"></div>
</div>
</div>
</div>
</div>
</body>
</html>

96
lldb/www/style.css Executable file
View File

@ -0,0 +1,96 @@
.www_title { font-family: "Georgia,Palatino,Times,Roman";
font-size: 33pt;
text-align: center;}
#container {
margin: 0px auto;
text-align: left;
width: 860px;
}
#header{
height:40px;
width:777px;
}
#content{
padding: 0px 0px 0px 0px;
border:1px solid white;
}
#left{
padding: 0px 0px 0px 0px;
border:1px solid white;
width:192px;
float:left;
}
#middle{
padding: 0px 0px 0px 0px;
border:1px solid white;
margin-left:200px;
margin-right:196px;
width:658px;
}
/*Credits: Dynamic Drive CSS Library */
/*URL: http://www.dynamicdrive.com/style/ */
.urbangreymenu{
width: 190px; /*width of menu*/
}
.urbangreymenu .headerbar{
font: bold 13px Verdana;
color: white;
background: #606060;
margin-bottom: 0; /*bottom spacing between header and rest of content*/
text-transform: uppercase;
padding: 7px 0 7px 7px;
}
.urbangreymenu ul{
list-style-type: none;
margin: 0;
padding: 0;
margin-bottom: 0; /*bottom spacing between each UL and rest of content*/
}
.urbangreymenu ul li{
padding-bottom: 1px; /*bottom spacing between menu items*/
}
.urbangreymenu ul li a{
font: normal 12px Arial;
color: black;
background: #E9E9E9;
display: block;
padding: 5px 0;
line-height: 17px;
padding-left: 14px;
text-decoration: none;
}
.urbangreymenu ul li a:visited{
color: black;
}
.urbangreymenu ul li a:hover{ /*hover state CSS*/
color: black;
background: #bbbbbb;
}
.post{
width: 640px; /*width of menu*/
}
.postheader{
font: bold 13px Verdana;
color: white;
background: #606060;
margin-bottom: 0; /*bottom spacing between header and rest of content*/
text-transform: uppercase;
padding: 7px 0 7px 7px;
}
.postcontent{
padding-left: 14px;
}