diff options
| author | blasty <blasty@local> | 2026-08-07 13:10:53 +0200 |
|---|---|---|
| committer | blasty <blasty@local> | 2026-08-07 13:10:53 +0200 |
| commit | 3edb58cc0b93fdd90b68c6aacc8af91874142099 (patch) | |
| tree | 2d23513d946ca3d604f094a8874c8e91657a25ac /idatui/trace.py | |
| parent | codemode: restore the graph view and pseudocode comments (diff) | |
| download | ida-tui-3edb58cc0b93fdd90b68c6aacc8af91874142099.tar.gz ida-tui-3edb58cc0b93fdd90b68c6aacc8af91874142099.tar.xz ida-tui-3edb58cc0b93fdd90b68c6aacc8af91874142099.zip | |
codemode: port the xref tools' real contract, order included
The pseudocode follow's address fallback broke: following a call landed on the
NEXT LINE instead of the callee (decomp_nav's stale-name check, cur=0x20dd
want=0x2060). The port's xref_query returned rows in raw IDA order, and at a
call site IDA yields the ordinary-flow xref (fl_F, the next instruction) before
the call xref (fl_CN), so 'first code xref' picked the fall-through.
The tool ida-tui was written against sorts rows by the far-end address and
dedups by default; sorted, 0x2060 precedes 0x210e and the follow is correct.
That ordering is load-bearing, so it is now part of the port rather than an
accident of the old implementation. Also fixed: the port attached 'fn' to
ref.from_ea for both directions, where a from-xref must describe its TARGET
(the xref dialog shows the wrong function otherwise), and the envelope was
missing direction/addr/total/next_offset/resolved_addr.
xref_types (ours, the kind badges in the xref dialog) is ported verbatim and
deliberately stays UNsorted -- that dialog lists xrefs in IDA's own order.
decomp_nav, follow_xrefs, xref_labels, decomp_follow_self: 15 passed, 0 failed.
Diffstat (limited to 'idatui/trace.py')
0 files changed, 0 insertions, 0 deletions
