-
Update to the latest development build of Binary Ninja
- Follow this guide to do so
-
Clone
binaryninja-apiand checkout to the corresponding commit used to build the version of Binary Ninja you are running- If you updated to the latest dev build of Binary Ninja, then you can checkout the api repo to the latest dev as well
- A more robust approach is to find the file
api_REVISION.txtinBN_INSTALLATION_FOLDER/Resources
git clone --recurse-submodules https://github.com/Vector35/binaryninja-api.git
cd binaryninja-api
git checkout dev
# or git checkout commit_hash-
Download LLDB development build for your OS at https://github.com/Vector35/lldb-artifacts/releases/latest - make sure that the correct LLDB version is downloaded (
grep 'LLVM_VERSION ' core/CMakeLists.txtcan help)- Extract the zip archive to
~/libclang
- Extract the zip archive to
-
Download Qt development build for your OS at https://github.com/Vector35/qt-artifacts/releases/latest.
- Extract the zip archive to
~/Qt
- Extract the zip archive to
-
Build the debugger
# Get the source
git clone https://github.com/Vector35/debugger.git
# Do an out-of-source build
mkdir -p build
cd build
# Build it
cmake -DBN_API_PATH=../binaryninja-api -DBN_INSTALL_DIR=/path/to/binaryninja/installation ..
makeWhile the code is compiling, it's a good time to check the Binary Ninja slack for any updates!
The build artifacts will be in the folder out. You should find two files libdebuggercore and libdebuggerui, and two folders debugger (that contains the Python code) and lldb.
- Run the debugger
- Open Binary Ninja, disable the setting
corePlugins.debuggerso the debugger that comes with Binary Ninja is not loaded - Close Binary Ninja
- Copy everything in the
outfolder to the user plugin folder -cp -r out/plugins/* ~/.binaryninja/plugins/ - Set the environment variable
BN_STANDALONE_DEBUGGER=1 - Launch BinaryNinja
- Open Binary Ninja, disable the setting
- On Windows, building the debugger in Debug mode may cause obscure bugs since the debug ABI of MSVC can be different from that of the release build.
It is recommended to build with
RelWithDebInfoon Windows.