Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upBranch:stable
Clone or download
Launching GitHub Desktop...
If nothing happens,download GitHub Desktop and try again.
Launching GitHub Desktop...
If nothing happens,download GitHub Desktop and try again.
Launching Xcode...
If nothing happens,download Xcode and try again.
Launching Visual Studio...
If nothing happens,download the GitHub extension for Visual Studio and try again.
[test] Disable two flaky tests to unblock the bots
README.md
Swift Debugger and REPL
| Status | |
|---|---|
| macOS | |
| Ubuntu 14.04 | |
| Ubuntu 16.04 | |
| Ubuntu 18.04 |
Welcome to the Swift Debugger and REPL!
Swift is a new, high performance systems programming language. It has a cleanand modern syntax, offers seamless access to existing C and Objective-Ccode and frameworks, and is memory safe (by default).
This repository covers the Swift Debugger and REPL support, built ontop of the LLDB Debugger.
Building LLDB for Swift
To build LLDB for Swift, you must have the following prerequisitesinstalled on your development system:
macOS Requirements
Linux x86_64 (Ubuntu 14.04, Ubuntu 15.10)
Clang 3.5 or later.
Cmake (version 2.8.12.2 or later)
Python 2.7
Once the pre-requisites are satisfied, follow these steps from abash-like shell:
mkdir myswiftcd myswiftgit clone https://github.com/apple/swift-lldb.git lldblldb/scripts/build-swift-cmake.py --testThe lldb build script will clone additional repositories for requireddependencies if they are not already present. An optional--updateargument can be used to refresh these required repositories. Productsof the build process will be placed in thebuild/ directoryunder the root source directory.
Inter-project Directory Layout
LLDB for Swift introduces new dependencies that do not exist withcore LLDB. In particular, LLDB for Swift makes extensive use of theSwift codebase.
Each one of the directories listed below underneath the overallsource_root are backed by a Swift.org 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 ofLLDB for Swift is contained in this repository. Core LLDB contentsare merged into this repository. No other copy of LLDB source codeis 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 build-swift-cmake.py script to do the initialclone of the related project repositories, you'll need to manually clonethem to the names above:
- swift-clang should be cloned as
clang - swift-cmark should be cloned as
cmark - swift-llvm should be cloned as
llvm
Contribution Subtleties
The swift-lldb project enhances the core LLDB project developed undertheLLVM Project. Swift support in the debugger is added viathe existing source-level plugin infrastructure, isolated to files thatare newly introduced in the lldb-swift repository.
Files that come from thecore LLDB project can be readilyidentified by their use of the LLVM comment header. As no localchanges should be made to any of these files, follow the standardguidance for upstream changes.


