Mercurial > hg > CbC > CbC_llvm
diff lldb/docs/index.rst @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 0572611fdcc8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lldb/docs/index.rst Thu Feb 13 15:10:13 2020 +0900 @@ -0,0 +1,169 @@ +.. title:: LLDB Homepage + +The LLDB Debugger +================= + +Welcome to the LLDB version |release| documentation! + +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. + +LLDB is the default debugger in Xcode on macOS and supports debugging C, +Objective-C and C++ on the desktop and iOS devices and simulator. + +All of the code in the LLDB project is available under the +`"Apache 2.0 License with LLVM exceptions"`_. + +.. _"Apache 2.0 License with LLVM exceptions": https://llvm.org/docs/DeveloperPolicy.html#new-llvm-project-license-framework + +Using LLDB +---------- + +For an introduction into the LLDB command language, head over to the `LLDB +Tutorial <https://lldb.llvm.org/use/tutorial.html>`_. For users already familiar +with GDB there is a cheat sheet listing common tasks and their LLDB equivalent +in the `GDB to LLDB command map <https://lldb.llvm.org/use/map.html>`_. + +There are also multiple resources on how to script LLDB using Python `Python +Reference <https://lldb.llvm.org/use/python-reference.html>`_ is a great +starting point for that. + +Compiler Integration Benefits +----------------------------- + +LLDB 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 any 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. + +The major benefits include: + +- Up to date language support for C, C++, Objective-C +- Multi-line expressions that can declare local variables and types +- Utilize the JIT for expressions when supported +- Evaluate expression Intermediate Representation (IR) when JIT can't be used + +Reusability +----------- + +The LLDB debugger APIs are exposed as a C++ object oriented interface in a +shared library. The lldb command line tool links to, and uses this public API. +On macOS the shared library is exposed as a framework named LLDB.framework, +and Unix systems expose it as lldb.so. 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 +lldb.py module in standard python script files. See the Python Reference page +for more details on how and where Python can be used with the LLDB API. + +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. + +Platform Support +---------------- + +LLDB is known to work on the following platforms, but ports to new platforms +are welcome: + +* macOS desktop user space debugging for i386 and x86_64 +* iOS, tvOS, and watchOS simulator debugging on i386 and x86_64 +* iOS, tvOS, and watchOS device debugging on ARM and AArch64 +* Linux local user-space debugging for i386, x86_64 and PPC64le +* FreeBSD local user-space debugging for i386 and x86_64 +* Windows local user-space debugging for i386 (*) + +(*) Support for Windows is under active development. Basic functionality is +expected to work, with functionality improving rapidly. + +Get Involved +------------ + +Check out the LLVM source-tree with git and find the sources in the `lldb` +subdirectory: + +:: + + > git clone https://github.com/llvm/llvm-project.git + +Note that LLDB generally builds from top-of-trunk using CMake and Ninja. +Additionally it builds: + +* on macOS with a :ref:`generated Xcode project <CMakeGeneratedXcodeProject>` +* on Linux and FreeBSD with Clang and libstdc++/libc++ +* on NetBSD with GCC/Clang and libstdc++/libc++ +* on Windows with a generated project for VS 2017 or higher + +See the :doc:`LLDB Build Page <resources/build>` for build instructions. + +Discussions about LLDB should go to the `lldb-dev +<http://lists.llvm.org/mailman/listinfo/lldb-dev>`__ mailing list. Commit +messages are automatically sent to the `lldb-commits +<http://lists.llvm.org/mailman/listinfo/lldb-commits>`__ mailing list , and +this is also the preferred mailing list for patch submissions. + +See the :doc:`Projects page <status/projects>` if you are looking for some +interesting areas to contribute to lldb. + +.. toctree:: + :hidden: + :maxdepth: 1 + :caption: Project + + status/goals + status/features + status/status + status/projects + status/releases + +.. toctree:: + :hidden: + :maxdepth: 1 + :caption: Use & Extension + + use/tutorial + use/map + use/formatting + use/variable + use/symbolication + use/symbols + use/python + use/python-reference + use/remote + use/troubleshooting + +.. toctree:: + :hidden: + :maxdepth: 1 + :caption: Development + + resources/architecture + resources/contributing + resources/build + resources/test + resources/bots + resources/reproducers + resources/sbapi + resources/caveats + +.. toctree:: + :hidden: + :maxdepth: 1 + :caption: Reference + + Public Python API <https://lldb.llvm.org/python_reference/index.html> + Public C++ API <https://lldb.llvm.org/cpp_reference/namespacelldb.html> + Private C++ API <https://lldb.llvm.org/cpp_reference/index.html> + Man Page <man/lldb> + +.. toctree:: + :hidden: + :maxdepth: 1 + :caption: External Links + + Source Code <https://github.com/llvm/llvm-project> + Code Reviews <https://reviews.llvm.org> + Bug Reports <https://bugs.llvm.org/>