Skip to content

xrefs in disassembly panel are mishandled #3096

@the-Arioch

Description

@the-Arioch

2.1.2 on Windows 7
See #3090 for more information.

The disasm panel has text like this

0x77c5c0f6      0f 85 d6 00 00 00                 jne     0x77c5c1d2
|
; CODE XREF from sym.USER32.dll_OpenClipboard @ 0x77c5c208
0x77c5c0fc      48 8b 15 7d b1 08 00              mov     rdx, qword data.77ce7280 ; [0x77ce7280:8]=0
0x77c5c103      48 8b 5c 24 48                    mov     rbx, qword [var_10h]

i hover the OpenClipboard @ 0x77c5c208 source line, and definitely NOT the next line mov rdx, ... line!

...and then suddenly:

2023-02-02 05_02_24-Disassembly 1 (unsynced)

  1. i was NOT hovering the line with 0x77ce7280 address. The line/address selection is plain wrong!
  2. the content 0x77ce7280 is data not code - it follows both from MOV RBX, PTR opcode wrongly seleted, and from multiple DB "opcodes" at the target address.

Since there is data not code there - the hexdump seems a better fit than disasm for the preview pop-up

(advertising voice mode:) But that is not all!!!

  1. double click the 0x77c5c208 literal after the OpenClipboard reference. The expected behavior would be navigsting to that address, back to the caller.

The real and very confusing behavior is jumping to the wrong 0x77ce7280 address instead:

2023-02-02 05_10_44-Disassembly 1 (unsynced)

  1. Shocked and confused i reach the app-global toolbar and press the "<< Back" button and then...

...and then ANOTHER panel (Disassembly 0) gets backtracked, not the active Disassembly 1 panel !

Oooops! Now i got totally lost. The panel i worked with got erratically scrolled to wild woods - and i can not go back.

Metadata

Metadata

Assignees

No one assigned

    Labels

    UIrizinNeeds changes into rizin codebase.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions