Binary Ninja hangs for 10+ seconds when running command `!process 0 0 ` in kernel debugging

Open
#532 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
cpp

Research direction

Reproduce the Windows kernel debugging case with !process 0 0 and compare Binary Ninja's behavior with WinDbg. Start by tracing the debugger integration around dbgeng and its threading assumptions; done means the Binary Ninja UI does not hang and command output is delivered incrementally rather than in one batch.

Written by the indexing model from the issue text.

Description

bug DbgEng Adapter hang Impact: High kernel debugging memory & concurrency

In Windows kernel debugging, when I run the command !process 0 0 , the Binary Ninja UI will appear to hang for ten or more seconds, then all output lines will be dumped to the debugger console. However, if I run this in the WinDbg UI, lines will be dumped one-by-one, and its main UI does not hang. Though the overall processing time is similar (this command takes a long while to finish)

This is NOT a simple main thread congestion. There is something different in the threading model of binja's use of dbgeng and dbgeng's own assumption/expectations. Though I am not quite sure what is happening

Dominant language
C++
Stars
331
Forks
33
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Vector35/debugger

All issues in Vector35/debugger

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.