NationalSecurityAgency / ghidra

Ghidra is a software reverse engineering (SRE) framework
https://www.nsa.gov/ghidra
Apache License 2.0
50.29k stars 5.75k forks source link

Listing scrolling unusably slow with one binary #4848

Open LunNova opened 1 year ago

LunNova commented 1 year ago

Describe the bug Scrolling takes multiple seconds before the view updates and Ghidra is unresponsive.

To Reproduce Steps to reproduce the behavior:

  1. Load binary
  2. Run analysis for some time
  3. Cancel analysis
  4. Try to scroll through listing

Expected behavior Scrolling should be fast or at least usable

Screenshots Screenshot of sampling profile while scrolling: Screenshot of sampling profile while scrolling

Drilled down further: Drilled down further

Attachments Binary is closed source, ~50MB

Environment (please complete the following information):

dragonmacher commented 1 year ago

It will be very hard to investigate the issue without having the problematic binary.

In the meantime, to help with your particular issue, you can try disabling the offending field in your first image. The offending field appears to be the Register Transition field.

From the Listing header click the icon that looks like a keyboard with a down arrow below it, the Edit the Listing fields button. This will show a series of tabs that allow you to control the fields in the Listing. Click the Instrucion/Data tab. Then right-click on the Register Transition field and select Disable Field.

There may be more than one slow field, but this is the one you have shown above, so you can start there.

AltimorTASDK commented 11 months ago

I'm having the same issue with a 500mb+ Unreal Engine 4 game binary (which I'm technically not at liberty to upload). Disabling the register transition field did fix it.

dragonmacher commented 11 months ago

When you have the field enabled, how much information does it provide in the Listing? It appears like excessive register information may cause this degenerate case.