This is the version of LLDB that supports the Swift programming language & REPL.
Switch branches/tags
swift-DEVELOPMENT-SNAPSHOT-2018-09-18-a swift-DEVELOPMENT-SNAPSHOT-2018-09-14-a swift-DEVELOPMENT-SNAPSHOT-2018-09-13-a swift-DEVELOPMENT-SNAPSHOT-2018-09-10-a swift-DEVELOPMENT-SNAPSHOT-2018-09-08-a swift-DEVELOPMENT-SNAPSHOT-2018-09-07-a swift-DEVELOPMENT-SNAPSHOT-2018-09-04-a swift-DEVELOPMENT-SNAPSHOT-2018-08-25-a swift-DEVELOPMENT-SNAPSHOT-2018-08-24-a swift-DEVELOPMENT-SNAPSHOT-2018-08-23-a swift-DEVELOPMENT-SNAPSHOT-2018-08-22-a swift-DEVELOPMENT-SNAPSHOT-2018-08-21-a swift-DEVELOPMENT-SNAPSHOT-2018-08-20-a swift-DEVELOPMENT-SNAPSHOT-2018-08-18-a swift-DEVELOPMENT-SNAPSHOT-2018-08-16-a swift-DEVELOPMENT-SNAPSHOT-2018-08-15-a swift-DEVELOPMENT-SNAPSHOT-2018-08-14-a swift-DEVELOPMENT-SNAPSHOT-2018-08-10-a swift-DEVELOPMENT-SNAPSHOT-2018-08-09-a swift-DEVELOPMENT-SNAPSHOT-2018-08-06-a swift-DEVELOPMENT-SNAPSHOT-2018-08-02-a swift-DEVELOPMENT-SNAPSHOT-2018-08-01-a swift-DEVELOPMENT-SNAPSHOT-2018-07-31-a swift-DEVELOPMENT-SNAPSHOT-2018-07-30-a swift-DEVELOPMENT-SNAPSHOT-2018-07-28-a swift-DEVELOPMENT-SNAPSHOT-2018-07-27-a swift-DEVELOPMENT-SNAPSHOT-2018-07-24-a swift-DEVELOPMENT-SNAPSHOT-2018-07-23-a swift-DEVELOPMENT-SNAPSHOT-2018-07-22-a swift-DEVELOPMENT-SNAPSHOT-2018-07-21-a swift-DEVELOPMENT-SNAPSHOT-2018-07-20-a swift-DEVELOPMENT-SNAPSHOT-2018-07-19-a swift-DEVELOPMENT-SNAPSHOT-2018-07-18-a swift-DEVELOPMENT-SNAPSHOT-2018-07-17-a swift-DEVELOPMENT-SNAPSHOT-2018-07-16-a swift-DEVELOPMENT-SNAPSHOT-2018-07-14-a swift-DEVELOPMENT-SNAPSHOT-2018-07-13-a swift-DEVELOPMENT-SNAPSHOT-2018-07-12-a swift-DEVELOPMENT-SNAPSHOT-2018-07-11-a swift-DEVELOPMENT-SNAPSHOT-2018-07-09-a swift-DEVELOPMENT-SNAPSHOT-2018-07-07-a swift-DEVELOPMENT-SNAPSHOT-2018-07-06-a swift-DEVELOPMENT-SNAPSHOT-2018-07-05-a swift-DEVELOPMENT-SNAPSHOT-2018-07-04-a swift-DEVELOPMENT-SNAPSHOT-2018-07-03-a swift-DEVELOPMENT-SNAPSHOT-2018-07-02-a swift-DEVELOPMENT-SNAPSHOT-2018-07-01-a swift-DEVELOPMENT-SNAPSHOT-2018-06-30-a swift-DEVELOPMENT-SNAPSHOT-2018-06-29-a swift-DEVELOPMENT-SNAPSHOT-2018-06-27-a swift-DEVELOPMENT-SNAPSHOT-2018-06-26-a swift-DEVELOPMENT-SNAPSHOT-2018-06-25-a swift-DEVELOPMENT-SNAPSHOT-2018-06-24-a swift-DEVELOPMENT-SNAPSHOT-2018-06-23-a swift-DEVELOPMENT-SNAPSHOT-2018-06-22-a swift-DEVELOPMENT-SNAPSHOT-2018-06-21-a swift-DEVELOPMENT-SNAPSHOT-2018-06-20-a swift-DEVELOPMENT-SNAPSHOT-2018-06-19-a swift-DEVELOPMENT-SNAPSHOT-2018-06-18-a swift-DEVELOPMENT-SNAPSHOT-2018-06-17-a swift-DEVELOPMENT-SNAPSHOT-2018-06-16-a swift-DEVELOPMENT-SNAPSHOT-2018-06-15-a swift-DEVELOPMENT-SNAPSHOT-2018-06-14-a swift-DEVELOPMENT-SNAPSHOT-2018-06-08-a swift-DEVELOPMENT-SNAPSHOT-2018-06-07-a swift-DEVELOPMENT-SNAPSHOT-2018-06-06-a swift-DEVELOPMENT-SNAPSHOT-2018-06-05-a swift-DEVELOPMENT-SNAPSHOT-2018-06-04-a swift-DEVELOPMENT-SNAPSHOT-2018-06-03-a swift-DEVELOPMENT-SNAPSHOT-2018-06-02-a swift-DEVELOPMENT-SNAPSHOT-2018-06-01-a swift-DEVELOPMENT-SNAPSHOT-2018-05-31-a swift-DEVELOPMENT-SNAPSHOT-2018-05-30-a swift-DEVELOPMENT-SNAPSHOT-2018-05-29-a swift-DEVELOPMENT-SNAPSHOT-2018-05-28-a swift-DEVELOPMENT-SNAPSHOT-2018-05-27-a swift-DEVELOPMENT-SNAPSHOT-2018-05-26-a swift-DEVELOPMENT-SNAPSHOT-2018-05-25-a swift-DEVELOPMENT-SNAPSHOT-2018-05-24-a swift-DEVELOPMENT-SNAPSHOT-2018-05-23-a swift-DEVELOPMENT-SNAPSHOT-2018-05-22-a swift-DEVELOPMENT-SNAPSHOT-2018-05-21-a swift-DEVELOPMENT-SNAPSHOT-2018-05-20-a swift-DEVELOPMENT-SNAPSHOT-2018-05-19-a swift-DEVELOPMENT-SNAPSHOT-2018-05-18-a swift-DEVELOPMENT-SNAPSHOT-2018-05-17-a swift-DEVELOPMENT-SNAPSHOT-2018-05-14-a swift-DEVELOPMENT-SNAPSHOT-2018-05-13-a swift-DEVELOPMENT-SNAPSHOT-2018-05-11-a swift-DEVELOPMENT-SNAPSHOT-2018-05-10-a swift-DEVELOPMENT-SNAPSHOT-2018-05-08-a swift-DEVELOPMENT-SNAPSHOT-2018-04-25-a swift-DEVELOPMENT-SNAPSHOT-2018-04-24-a swift-DEVELOPMENT-SNAPSHOT-2018-04-23-a swift-DEVELOPMENT-SNAPSHOT-2018-04-22-a swift-DEVELOPMENT-SNAPSHOT-2018-04-21-a swift-DEVELOPMENT-SNAPSHOT-2018-04-20-a swift-DEVELOPMENT-SNAPSHOT-2018-04-19-a swift-DEVELOPMENT-SNAPSHOT-2018-04-18-a swift-DEVELOPMENT-SNAPSHOT-2018-04-17-a
Nothing to show
Clone or download
Failed to load latest commit information.
cmake Introduce install-lldb-framework target Aug 18, 2018
docs Merge remote-tracking branch 'llvm/master' into upstream-with-swift May 2, 2018
examples Update to use best pratices. Jun 22, 2018
include/lldb [SwiftLanguageRuntime] Catch up with changes for swift_willThrow. Sep 12, 2018
lit [REPL] Test the repl directly here. Sep 13, 2018
lldb.xcodeproj Undo accidental changes to Xcode project. Sep 18, 2018
lldb.xcworkspace Adapt lldb to the new swift mangling style. Mar 15, 2017
packages/Python/lldbsuite Merge pull request #902 from adrian-prantl/frontend Sep 18, 2018
resources Merge remote-tracking branch '' into upstream-with-swift Jun 27, 2018
scripts Update static SWIG bindings Aug 30, 2018
source Merge pull request #903 from apple/rdar44467875 Sep 18, 2018
test Revert "[ASTImporter] Add test for IfStmt" Aug 30, 2018
third_party/Python/module grand code reformatting Sep 8, 2016
tools Re-instate a bit of code that was commented out in r188246 which Sep 6, 2018
unittests Try to more gently disable the TestArmv7Disassembly test for now. Sep 10, 2018
utils [CMake] Move swift compiler logic Jul 4, 2018
www Fix/unify the spelling of Objective-C. Jun 13, 2018
.arcconfig Upgrade all the .arcconfigs to https. Jul 14, 2016
.clang-format Updated .clang-format rules so bring LLDB in line with LLVM standards. Sep 8, 2016
.gitignore Merge stable into upstream-with-swift. Mar 9, 2018
CMakeLists.txt Introduce install-lldb-framework target Aug 18, 2018
CODE_OWNERS.txt Fix/unify the spelling of Objective-C. Jun 13, 2018 Add legal notice for pull requests and reference to contribution guid… Dec 5, 2015
INSTALL.txt Changed to use .json files Apr 28, 2017
LICENSE.TXT test commit Jun 9, 2010 Update the macOS version on the README Dec 14, 2017
notifications.json Add Swift support to LLDB. Nov 6, 2015 grand code reformatting Sep 8, 2016

Swift Debugger and REPL

macOS Build Status
Ubuntu 16.04 Build Status
Ubuntu 16.10 Build Status

Welcome to the Swift Debugger and REPL!

Swift is a new, high performance systems programming language. It has a clean and modern syntax, offers seamless access to existing C and Objective-C code and frameworks, and is memory safe (by default).

This repository covers the Swift Debugger and REPL support, built on top of the LLDB Debugger.

Building LLDB for Swift

To build LLDB for Swift, you must have the following prerequisites installed on your development system:

  • macOS Requirements

    • macOS 10.12.6 or later.

    • Xcode 9.2 or later.

    • Cmake (version or later)

  • Linux x86_64 (Ubuntu 14.04, Ubuntu 15.10)

    • Clang 3.5 or later.

    • Cmake (version or later)

    • Python 2.7

Once the pre-requisites are satisfied, follow these steps from a bash-like shell:

mkdir myswift
cd myswift
git clone lldb
lldb/scripts/ --test

The lldb build script will clone additional repositories for required dependencies if they are not already present. An optional --update argument can be used to refresh these required repositories. Products of the build process will be placed in the build/ directory under the root source directory.

Inter-project Directory Layout

LLDB for Swift introduces new dependencies that do not exist with core LLDB. In particular, LLDB for Swift makes extensive use of the Swift codebase.

Each one of the directories listed below underneath the overall source_root are backed by a repository:

+-- clang/
+-- cmark/
+-- lldb/
+-- llvm/
+-- ninja/
+-- swift/

Details on the contents:

  • clang

    Contains the stable version of Clang used by Swift.

  • cmark

    Contains markdown support used by Swift.

  • lldb

    Contains the LLDB source that includes Swift support. All of LLDB for Swift is contained in this repository. Core LLDB contents are merged into this repository. No other copy of LLDB source code is required.

  • llvm

    Contains the stable version of LLVM used by Swift.

  • ninja

    Contains the Ninja build system.

  • swift

    Contains the Swift Language and Swift Runtime code.

Note: If you don't use the script to do the initial clone of the related project repositories, you'll need to manually clone them to the names above:

Contribution Subtleties

The swift-lldb project enhances the core LLDB project developed under the LLVM Project. Swift support in the debugger is added via the existing source-level plugin infrastructure, isolated to files that are newly introduced in the lldb-swift repository.

Files that come from the core LLDB project can be readily identified by their use of the LLVM comment header. As no local changes should be made to any of these files, follow the standard guidance for upstream changes.