Vector35 / Vector35/binaryninja-api
Find Text runs on main thread
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
Version and Platform (required):
- Binary Ninja Version: 3.0.3319-dev
- OS: macOS
- OS Version: 12.0.1
Bug Description:
When searching for text in the UI, the search runs on the main thread and waits for IL generation on the main thread. This causes the UI to lock up for larger files where IL generation can take many seconds per function.
Steps To Reproduce:
Please provide all steps required to reproduce the behavior:
- Open any large binary. I'm using ntdll
- Search for text in HLIL, I used "and rsp"
- Observe monster lag spikes
Expected Behavior:
I expected the UI to continue being responsive while searching was in progress. The UI isn't modal so I did not expect it to hang the main thread waiting for results.
Additional Information:
MainWindow::findAll looks like it directly calls View::findAllText, which should probably be done instead in a background thread.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with MainWindow::findAll and View::findAllText, then reproduce the lag by searching for "and rsp" in HLIL on a large binary such as ntdll. Trace where IL generation and search work run, and verify that the UI remains responsive while results are produced in the background.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100