Changing a name shouldn't cause a whole function re-analysis

Open
#2,806 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
cpp

Research direction

Start by tracing how variable and struct-field renames from the HLIL view trigger function analysis and how the updated decompilation output is produced. Compare the current full-function reanalysis path with a name-only substitution approach; done means renaming a name updates the displayed output without reanalyzing the entire function, including for large functions.

Written by the indexing model from the issue text.

Description

Component: Core Effort: Medium Impact: Medium

Is your feature request related to a problem?
In Binary Ninja 2.5.3127-dev, If I rename a variable or struct field from within the HLIL view, it reanalyzes the entire function I'm looking at in order to display the new name. For large functions this can be rather slow.
What is the feature you'd like to have?
Since a name change is guaranteed to have a shallow effect on the decompilation output, Binary Ninja should just substitute the name in the output rather than redoing everything.
Are any alternative solutions acceptable?
Hypothetically, it would be even better to have a full-fledged incremental decompilation feature that can account for type changes and other semantic changes without reanalyzing the whole function. But that would probably be orders of magnitude harder to implement.

Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

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/binaryninja-api

All issues in Vector35/binaryninja-api

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.