Warn when TTD is used without the WinDbg/TTD package (Fixes #1103)#1143
Open
xusheng6 wants to merge 1 commit into
Open
Warn when TTD is used without the WinDbg/TTD package (Fixes #1103)#1143xusheng6 wants to merge 1 commit into
xusheng6 wants to merge 1 commit into
Conversation
The debugger only loads the WinDbg/TTD copy that Binary Ninja downloads itself, but a self-installed WinDbg looks like it should work, so the mistake surfaced as an opaque "Failed to initialize DbgEng". Check for the replay engine and the recorder before launching a DBGENG_TTD session and before the TTD record/attach dialogs, and explain what is missing with a button to install it. The core-side errors carry the same explanation. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1103.
The debugger only loads the WinDbg/TTD copy that Binary Ninja downloads itself (or whatever
debugger.x64dbgEngPathpoints at). A WinDbg installed from the Microsoft Store or the standalone installer looks like it should work, so the mistake only surfaced as an opaqueFailed to initialize DbgEngat launch, orcannot find the path for the TTD recorderafter the record dialog was already filled in.New
ui/ttdinstall.cppresolves the replay engine (dbgeng.dlland friends) and the recorder (TTD.exe,TTDRecord.dll) the same way the adapters do, and distinguishes: never downloaded,debugger.x64dbgEngPathpointing somewhere wrong, and installed but not loaded yet (needs a restart, since the DLLs load at plugin init). Each message says a self-installed WinDbg cannot be used and offers a button that runs the installer.The check runs before launching a
DBGENG_TTDsession and before the TTD record/attach dialogs open.DbgEngAdapter::GetDbgEngInstallHint()carries the same explanation into the core-side warning and launch error, so headless/Python users see it too.GlobalDebuggerUI::installTTD()moves verbatim toTTDInstall::RunInstaller()so the checks can invoke it, andui/ttdrecord.cpp's duplicated path resolution is gone.Testing
debuggercorebuilds clean.debuggeruidoes not link in my local setup for an unrelated pre-existing reason (ui/uinotification.h:43overridesOnTokenDoubleClicked, which mybinaryninja-apicheckout predates), so I compiled each changed translation unit individually instead — all clean. The dialogs have not been exercised at runtime.🤖 Generated with Claude Code