diff options
| author | blasty <blasty@local> | 2026-07-22 23:50:40 +0200 |
|---|---|---|
| committer | blasty <blasty@local> | 2026-07-22 23:50:40 +0200 |
| commit | d4bd0f246237cd218a75e3014f80d7379e25194b (patch) | |
| tree | bd7737b215c9e7c1a8b3aeea1d56e76bc27ce7ea /idatui/app.py | |
| parent | app: ListingView — virtualized flat code+data listing for regions (M2) (diff) | |
| download | ida-tui-d4bd0f246237cd218a75e3014f80d7379e25194b.tar.gz ida-tui-d4bd0f246237cd218a75e3014f80d7379e25194b.tar.xz ida-tui-d4bd0f246237cd218a75e3014f80d7379e25194b.zip | |
server: coalesce undefined byte runs in the heads walker
The M2 fix (step by get_item_end so undefined bytes render and arbitrary
addresses land exactly) emits one row per undefined byte, which would explode
a large .bss/undefined region into millions of rows and make load_all crawl.
Collapse a run of consecutive undefined bytes into a single `db N dup(?)` row
(its end found in O(1) via next_head, which skips undefined). A single stray
undefined byte still renders normally (shows its value), so exact-address
navigation and the c/p/u workflow are unchanged: a 42-byte gap is one row at
the run start, and 'p' there auto-analyzes the function.
Verified: undefining a function yields one `db 42 dup(?)` row (not 42);
echo .text stays 5036 heads; data segments unaffected. region_define +
listing_view + test_domain[listing] all green. Needs a supervisor restart.
Diffstat (limited to 'idatui/app.py')
0 files changed, 0 insertions, 0 deletions
