elide lifetimes
update readme
update dependencies
A lightweight native GUI for LLDB.
The goal is to be able to launch with the same command line options as lldb itself. Currently the following options are supported:
Usage: lldbui [OPTIONS] <EXECUTABLE|--attach-pid <ATTACH_PID>|--attach-name <ATTACH_NAME>> [ARGS]...
Arguments:
[EXECUTABLE]
[ARGS]...
Options:
-p, --attach-pid <ATTACH_PID> Tells the debugger to attach to a process with the given pid
-n, --attach-name <ATTACH_NAME> Tells the debugger to attach to a process with the given name
-x, --no-lldbinit Do not automatically parse any '.lldbinit' files
-h, --help Print help
-V, --version Print version
Passing an executable as a positional argument prepares lldbui to debug the given executable. To disambiguate between arguments passed to lldbui and arguments passed to the debugged executable, arguments starting with a -
must be passed after --
: lldbui someprog -- --progarg1 --progarg2=foo
.
In addition to the Rust toolchain you need to fullfill the dependencies of:
sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev
. MacOS should work out of the box.On macOS I currently install xcode, brew install llvm
and set:
LLVM_CONFIG="/opt/homebrew/opt/llvm/bin/llvm-config"
LLVM_ROOT="/opt/homebrew/opt/llvm"
LLVM_BUILD_ROOT="/opt/homebrew/opt/llvm"
DYLD_FRAMEWORK_PATH=/Applications/Xcode.app/Contents/SharedFrameworks
lldbui aims to be a middle ground between plain lldb and a full-fledged debugger IDE. If you're already using an IDE like VSCode you probably should use that for debugging. But if you're a Vim/Emacs user that needs a bit more than plain lldb this project might be for you. The embedded lldb console gives you access to all lldb functions while the UI helps you to visually inspect the program state.
If you want to discuss about the project or contribute patches just send an email to the mailing list. The simplest way to send a patch is to use git send-email, follow this guide to configure git properly.
This project wouldn't have been possible without:
I drew lots of inspiration from Vadim Chugunov VSCode plugin codelldb and from lldbg.
break delete
)