aboutsummaryrefslogtreecommitdiffstats
path: root/idatui/launch.py
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-22 23:43:16 +0200
committerblasty <blasty@local>2026-07-22 23:43:16 +0200
commitd59b46715aa207bd0d7addadc33f00fb257d7fc5 (patch)
treec2220e054b57e0c0eef7237dbb4e3ae583c69f4f /idatui/launch.py
parentserver+domain: heads walker + ListingModel — flat code/data listing (M1) (diff)
downloadida-tui-d59b46715aa207bd0d7addadc33f00fb257d7fc5.tar.gz
ida-tui-d59b46715aa207bd0d7addadc33f00fb257d7fc5.tar.xz
ida-tui-d59b46715aa207bd0d7addadc33f00fb257d7fc5.zip
app: ListingView — virtualized flat code+data listing for regions (M2)
The real disassembly-listing view. ListingView is a line-virtualized ScrollView (reusing ColumnCursor/SearchMixin/NavMixin) backed by ListingModel, rendering code, data (db/dw/dd, strings, jump tables) and undefined bytes interleaved with per-kind styling. Non-function regions now open in it instead of the M0 DisasmModel stopgap. Integration (IdaTui): a new `listing` active mode. _open_entry routes region entries to ListingView; _show_active/compose add it; follow/xrefs/comment and the c/p/u edit verbs handle it (define_func upgrades a region straight to the function view); backslash reaches hex and returns via _code_mode (so leaving hex from a region lands back on the listing, not a func view); Tab explains there's no pseudocode for a region. rpc._active_widget learns `listing`. Server fix (the important one): the `heads` walker now steps by get_item_end instead of next_head. next_head SKIPS undefined bytes, so after undefining a function its start address wasn't even a listing line and the cursor snapped to the next defined item; stepping by item-end renders undefined bytes as `db ?` lines (IDA-accurate) and makes navigation land exactly on any address — essential for "go to unmarked bytes and hit c". Needs a supervisor restart. Tests: region_define rewritten to assert the ListingView path + segment-wide listing + p-upgrade; new listing_view scenario (data-segment listing renders data heads, cursor reports head ea, backslash->hex->back). Pilot 115 pass / 1 pre-existing flaky (filter); rpc_smoke 29/0; test_domain 27/0.
Diffstat (limited to 'idatui/launch.py')
0 files changed, 0 insertions, 0 deletions