aboutsummaryrefslogtreecommitdiffstats
path: root/idatui/trace.py
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-28 16:17:21 +0200
committerblasty <blasty@local>2026-07-28 16:17:21 +0200
commit20e34495efd523721990534358e45eb8f6b25c34 (patch)
tree00c28de53b99dcbc5b8d5361e9b0054426b24b23 /idatui/trace.py
parenttrace: stop the decompiler thrashing during a step (and correct the record) (diff)
downloadida-tui-main.tar.gz
ida-tui-main.tar.xz
ida-tui-main.zip
app: one instruction map for the decompiled function, not twoHEADmain
Finishing the thing the last commit only worked around. The split view and the trace path each kept their own per-line instruction map of the same pseudocode — fetched separately, indexed separately, and keyed differently: the split one on _cur (the function the CURSOR is in), the trace one on the function the DECOMPILER has loaded. Those are not the same thing, which is precisely how the two ended up describing different functions and why I spent a commit chasing a "sparse decomp_map" that was never sparse. _apply_split_map now indexes once and both read it. Keyed on the decompiler's loaded function, and no longer conditional on split being on — the old guard dropped the result whenever _cur had moved while the fetch was in flight, which during stepping is almost always. Measured after: three decomp_map fetches across 28 steps (two for main, one for the function stepped into), the split map and the trace map are literally the same object, and both describe what is on screen. Process note, because this is the second time: my first attempt at this edit SILENTLY DID NOTHING — the pattern didn't match (a duplicated comment line I'd mangled), the old method stayed, and the new caller hit its `not self._split` guard, so the painting tests went from passing to "0 lines". Same failure mode as the key bindings that never got added. Structural edits now assert that the anchor was found and that the replacement is present before writing. 212/0 scenarios, 26/0 trace UI, 30/0 project UI, 20/0 split view.
Diffstat (limited to 'idatui/trace.py')
0 files changed, 0 insertions, 0 deletions