JDevlieghere created this revision. JDevlieghere added a reviewer: LLDB. Herald added a subscriber: arphaman. Herald added a project: All. JDevlieghere requested review of this revision.
Feedback I hear regularly is that the LLDB website is hard to navigate. This patch is an attempt to simplify things by breaking the website up in 3 major areas: using LLDB, extending LLDB and developing LLDB. Concretely: - The majority of the "project" pages were eliminated, with the exception of the projects page, which was moved under "Developing LLDB". The goals, features and status page were pretty outdated and while they probably made sense in the past, they don't feel all that relevant anymore now that LLDB is an established debugger. The releases page was replaced with a link under "External links". - "USE & EXTENSION" was renamed to "Using LLDB". Besides that this section remained mostly unchanged, with the exception of the Python pages which were moved under "Extending LLDB". - "Development" was renamed to "Developing LLDB" and now houses all the resources for LLDB developers. The old "Design" section (which only contained two pages) was moved back under here too. https://reviews.llvm.org/D158023 Files: lldb/docs/.htaccess lldb/docs/design/overview.rst lldb/docs/design/sbapi.rst lldb/docs/index.rst lldb/docs/resources/fuzzing.rst lldb/docs/resources/overview.rst lldb/docs/resources/projects.rst lldb/docs/resources/sbapi.rst lldb/docs/status/features.rst lldb/docs/status/goals.rst lldb/docs/status/projects.rst lldb/docs/status/releases.rst lldb/docs/status/status.rst
Index: lldb/docs/status/status.rst =================================================================== --- lldb/docs/status/status.rst +++ /dev/null @@ -1,68 +0,0 @@ -Status -====== - -FreeBSD -------- - -LLDB on FreeBSD lags behind the Linux implementation but is improving rapidly. -For more details, see the Features by OS section below. - -Linux ------ - -LLDB is improving on Linux. Linux is nearing feature completeness with Darwin -to debug x86_64, i386, ARM, AArch64, IBM POWER (ppc64), and IBM Z (s390x) -programs. For more details, see the Features by OS section below. - -macOS ------ - -LLDB is the system debugger on macOS, iOS, tvOS, and watchOS and -can be used for C, C++, Objective-C and Swift development for x86_64, -i386, ARM, and AArch64 debugging. The entire public API is exposed -through a macOS framework which is used by Xcode and the `lldb` -command line tool. It can also be imported from Python. The entire public API is -exposed through script bridging which allows LLDB to use an embedded Python -script interpreter, as well as having a Python module named "lldb" which can be -used from Python on the command line. This allows debug sessions to be -scripted. It also allows powerful debugging actions to be created and attached -to a variety of debugging workflows. - -NetBSD ------- - -LLDB is improving on NetBSD and reaching feature completeness with Linux. - -Windows -------- - -LLDB on Windows is still under development, but already useful for i386 -programs (x86_64 untested) built with DWARF debug information, including -postmortem analysis of minidumps. For more details, see the Features by OS -section below. - -Features Matrix ---------------- -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ -| Feature | FreeBSD | Linux | macOS | NetBSD | Windows | -+=======================+====================+=========================+===================+====================+======================+ -| Backtracing | YES | YES | YES | YES | YES | -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ -| Breakpoints | YES | YES | YES | YES | YES | -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ -| C++11: | YES | YES | YES | YES | Unknown | -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ -| Commandline tool | YES | YES | YES | YES | YES | -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ -| Core file debugging | YES (ELF) | YES (ELF) | YES (MachO) | YES (ELF) | YES (Minidump) | -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ -| Remote debugging | YES (lldb-server) | YES (lldb-server) | YES (debugserver) | YES (lldb-server) | NO | -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ -| Disassembly | YES | YES | YES | YES | YES | -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ -| Expression evaluation | YES (known issues) | YES (known issues) | YES | YES (known issues) | YES (known issues) | -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ -| JIT debugging | Unknown | Symbolic debugging only | Untested | Work In Progress | NO | -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ -| Objective-C 2.0: | Unknown | N/A | YES | Unknown | N/A | -+-----------------------+--------------------+-------------------------+-------------------+--------------------+----------------------+ Index: lldb/docs/status/releases.rst =================================================================== --- lldb/docs/status/releases.rst +++ /dev/null @@ -1,14 +0,0 @@ -Releases -======== - -Nightly Builds --------------- - -Nightly builds of LLDB are packaged and tested from trunk: - -Debian and Ubuntu: https://apt.llvm.org - -Releases --------- - -LLDB is packaged in most of the Debian & Ubuntu releases and in pkgsrc (NetBSD). Index: lldb/docs/status/goals.rst =================================================================== --- lldb/docs/status/goals.rst +++ /dev/null @@ -1,44 +0,0 @@ -Goals -===== - -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. - -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. - -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. - -Some more specific goals include: - -* Build libraries for inclusion in IDEs, command line tools, and other analysis - tools -* High performance and efficient memory use -* Extensible: Python scriptable and use a plug-in architecture -* Reuse existing compiler technology where it makes sense -* Excellent multi-threaded debugging support -* Great support for C, Objective-C and C++ -* Retargetable to support multiple platforms -* Provide a base for debugger research and other innovation - -Why a New Debugger? -------------------- - -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. - Index: lldb/docs/status/features.rst =================================================================== --- lldb/docs/status/features.rst +++ /dev/null @@ -1,18 +0,0 @@ -Features -======== - -LLDB supports a broad variety of basic debugging features such as reading DWARF, supporting step, next, finish, backtraces, etc. Some more interested bits are: - -* Plug-in architecture for portability and extensibility: - - * Object file parsers for executable file formats. Support currently includes Mach-O (32 and 64-bit) & ELF (32-bit). - * Object container parsers to extract object files contained within a file. Support currently includes universal Mach-O files & BSD Archives. - * Debug symbol file parsers to incrementally extract debug information from object files. Support currently includes DWARF & Mach-O symbol tables. - * Symbol vendor plug-ins collect data from a variety of different sources for an executable object. - * Disassembly plug-ins for each architecture. Support currently includes an LLVM disassembler for i386, x86-64 , ARM/Thumb, and PPC64le - * Debugger plug-ins implement the host and target specific functions required to debug. - -* SWIG-generated script bridging allows Python to access and control the public API of the debugger library. -* A remote protocol server, debugserver, implements macOS debugging on i386 and x86-64. -* A command line debugger - the lldb executable itself. -* A framework API to the library. Index: lldb/docs/resources/overview.rst =================================================================== --- lldb/docs/resources/overview.rst +++ lldb/docs/resources/overview.rst @@ -1,5 +1,5 @@ -Overview -======== +Design Overview +=============== 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 Index: lldb/docs/resources/fuzzing.rst =================================================================== --- lldb/docs/resources/fuzzing.rst +++ lldb/docs/resources/fuzzing.rst @@ -1,5 +1,5 @@ -Fuzzing LLDB -============ +Fuzzing +======= Overview -------- Index: lldb/docs/index.rst =================================================================== --- lldb/docs/index.rst +++ lldb/docs/index.rst @@ -107,24 +107,13 @@ <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 +See the :doc:`Projects page <resources/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 + :caption: Using LLDB use/tutorial use/map @@ -133,45 +122,40 @@ use/symbolication use/symbols use/extensions - use/python - use/python-reference use/remote use/qemu-testing use/intel_pt use/ondemand use/troubleshooting use/links + Man Page <man/lldb> .. toctree:: :hidden: :maxdepth: 1 - :caption: Development - - resources/contributing - resources/build - resources/test - resources/fuzzing - resources/bots - resources/caveats - + :caption: Extending LLDB -.. toctree:: - :hidden: - :maxdepth: 1 - :caption: Design + use/python + use/python-reference + Python API <python_api> - design/overview - design/sbapi .. toctree:: :hidden: :maxdepth: 1 - :caption: Reference + :caption: Developing LLDB - Public Python API <python_api> + resources/overview + resources/contributing + resources/build + resources/test + resources/fuzzing + resources/bots + resources/sbapi + resources/caveats + resources/projects 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: @@ -179,5 +163,6 @@ :caption: External Links Source Code <https://github.com/llvm/llvm-project> + Releases <https://github.com/llvm/llvm-project/releases> Code Reviews <https://reviews.llvm.org> Bug Reports <https://github.com/llvm/llvm-project/issues/labels/lldb/> Index: lldb/docs/.htaccess =================================================================== --- lldb/docs/.htaccess +++ lldb/docs/.htaccess @@ -15,9 +15,9 @@ Redirect 301 /resources/source.html https://lldb.llvm.org/resources/contributing.html Redirect 301 /resources/download.html https://lldb.llvm.org/status/releases.html Redirect 301 /use/architecture.html https://lldb.llvm.org/resources/architecture.html -Redirect 301 /resources/architecture.html https://lldb.llvm.org/design/overview.html -Redirect 301 /resources/reproducers.html https://lldb.llvm.org/design/reproducers.html -Redirect 301 /resources/sbapi.html https://lldb.llvm.org/design/sbapi.html +Redirect 301 /resources/architecture.html https://lldb.llvm.org/resources/overview.html +Redirect 301 /design/sbapi.html https://lldb.llvm.org/resources/sbapi.html +Redirect 301 /design/overview.html https://lldb.llvm.org/resources/overview.html # Redirect old Python API to new Python API. Redirect 301 /python_reference/lldb-module.html https://lldb.llvm.org/python_api.html
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits