LLDBPyGUI
- VERSION: 0.0.2 - “Developer Preview” as of 2025-07-16 13:20:59
Old version
Synopsis
LLDBPyGUI is a longtime missed gui of mine for the opensource debugger (framework) LLDB. While LLDB comes with a comperhensive set of tools and also a C++ and Python API. It lacks of providing a useful (at least for me) GUI as it’s only working as a terminal application at this day of age. So I took some time and started a GUI wrapper project that is using the Python API of LLDB and began to implement a UI with the help of PyQt6. The project is still in a really early prototype stage at the moment, but I didn’t want to let you miss the idea of mine and give you a short sneak-preview of the tool I have in mind.
Movie Trailer
Features
- General info about the target executable and linked libraries
- Disassembler / Debugger
- Stacktrace viewer
- Break- and Watchpoints
- Register / Variable viewer
- Synchronized source code view
- Memory viewer
- Search function
- Commands interface (for lldb cmds)
Requirements (Important)
The following requirements are strictly needed. You might get the python scripts to load in earlier lldb / clang versions, but you are strictly advised to use at least version 22.0.0git because of the buggy nature of older LLDB Python API versions. Test it at your own risk and expense, no support or help will be provided for setting LLDBPyGUI up in older LLDB / LLVM versions.
macOS
- macOS Sequoia >= 15.1.1 - At the moment LLDBPyGUI is soly developed and tested on macOS 15.1.1. You are encouraged to test it on other os versions or systems -at your own risk and expense of course. Every seriouse feedback is very welcome and will be noticed and processed personally by meyself.
LLDB Python API base
- lldb version 22.0.0git
- clang version 22.0.0git
Setup / Installation
Compile LLDB (LLVM)
To use LLDBPyGUI you need to have lldb and clang installed and working with python scripting option enabled. Usually the preinstalled versions (~=16.0.0) of this appss are outdated and will lead to many headaches and problems while using all the features of LLDBPyGUI to debug executables or libraries. So the current version of LLDBPyGUI is tailored only for LLDB v. 22.0.0git and above, troubles with other versions are your own problem and will not be supported.
Configure cmake
1
dave@Aeon ~ % cmake -S llvm -B build -G Ninja -DLLVM_ENABLE_PROJECTS="clang;lldb" -DCMAKE_BUILD_TYPE=Release -DLLDB_INCLUDE_TESTS=OFF -DLLDB_ENABLE_PYTHON=ON -DPython3_ROOT_DIR=/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9
Build with cmake
1
dave@Aeon ~ % cmake --build build
1
2
3
4
dave@Aeon ~ % lldb --version
lldb version 22.0.0git (https://github.com/llvm/llvm-project.git revision 16a0892a9db1825ffa5e42b801e13215418d93b9)
clang revision 16a0892a9db1825ffa5e42b801e13215418d93b9
llvm revision 16a0892a9db1825ffa5e42b801e13215418d93b9
How to install and run the app
To install the LLDBPyGUI app to LLDB you have to amend the .lldbinit file in you users home directory like so:
1
command script import /<pathToGuiScripts>/lldbpyGUI.py
(~/.lldbinit file)
To run the python app start a lldb instance with
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
dave@Aeon ~ % lldb
(LLDBPyGUI) pyg
#=================================================================================#
| Starting TEST ENVIRONMENT for LLDBPyGUI (ver. 0.0.2 - DEV PREVIEW) |
| |
| Desc: |
| This python script is for development and testing while development |
| of the LLDB python GUI (LLDBPyGUI.py) - use at own risk! No Warranty! |
| |
| Credits: |
| - LLDB |
| - lldbutil.py |
| - lui.py |
| |
| Author / Copyright: |
| Kim David Hauser (JeTeDonner), (C.) by kimhauser.ch 1991-2025 |
#=================================================================================#
Old Version
1
2
3
dave@Aeon ~ % lldb
[+] Loaded LLDBPyGUI version 0.0.1 - ALPHA PREVIEW (BUILD: 689)
(LLDBPyGUI) spg
Community contribution
As you can see this project is still under construction and not finished yet. So far I did what I could and what I thought was useful and would be needed. But let’s face it, the product is not final yet and every help or contribution is very welcome. If you think this tool is useful for you but is missing some important function you need, please don’t hesitate to contact me personally or even better send me any pull request via github. I really think this project is worth a glimp and could help many developers. Please keep in mind, that at this stage you have to meet several really specific conditions which are crucial for running this early Developer Preview of LLDBPyGUI.
Disclaimer
Please keep in mind, that this release is only a really early Alpha release version that is intend to give you a first preview of what the app will look and function like. There is no waranty or garantie of working functionality or working feature what so ever. Anyhow every feedback or input from your side is very welcome as this will give me an idea what is important to you as an end user. So please feel free to send me any feedback about the app and your opinion. Thank you!
Documentation
Download / Github
Credits
LLDB
Python libs
Images and Icons
- Debug icons created by Freepik - Flaticon
- Video player icons created by judanna - Flaticon
- Github icons created by Pixel perfect - Flaticon
- Triangle icons created by Freepik - Flaticon
- Pause icons created by Freepik - Flaticon
- Settings icons created by Gregor Cresnar Premium - Flaticon
- Info icons created by Plastic Donut - Flaticon
- Save icons created by Flat Icons - Flaticon
- Edit icons created by Flat Icons - Flaticon
- Recycle bin icons created by Uniconlabs - Flaticon
- Settings icons created by Md Tanvirul Haque - Flaticon
- Settings icons created by Freepik - Flaticon
- Reload icons created by syafii5758 - Flaticon
- Add icons created by Ilham Fitrotul Hayat - Flaticon
- Ui icons created by khulqi Rosyid - Flaticon