Commit Graph
33 Commits
Author SHA1 Message Date
Ryan Fleury 0b91cab00a linux_demon: PTRACE_EVENT_STOPs can sometimes be reported even if a thread has already hit a trap (e.g. a trap net or breakpoint trap). this would sometimes cause spurious SIGTRAPs after issuing a PTRACE_INTERRUPT - so we need to flag halted threads to not treat that as a 'real' trap. furthermore, even though that trap was hit, it does not guarantee that the debugger would next see a SIGTRAP. that would cause spurious SIGILLs, because we'd resume threads *after* the trap, despite not seeing the trap, so they'd just see a malformed instruction (the bytes subsequent the initial trap). so in those cases, we need to roll such threads back, so that they re-execute the trap, and so that we see a regular SIGTRAP, and handle the trap correctly. 2026-09-29 12:28:05 -06:00
Ryan Fleury 4e7a6127d8 dbg_engine: process memory cache - always retry on memgen 'tearing', do not enforce size restriction. linux_demon: correctly relativize loaded module paths when needed per the loading process' working directory. raddbg: disasm view, do not skip too far back - can go into unmapped space. eval: file/folder filtering - hoist exact matches to the top. 2026-09-28 09:18:59 -06:00
Ryan Fleury 0317f4c810 linux_demon: correct rebasing / phdr address parsing for both static/dynamic ELFs 2026-09-25 11:15:07 -06:00
Ryan Fleury bc7434f7ed linux_demon: do not fail when there is no dynamic loader present 2026-09-25 10:29:16 -06:00
Ryan Fleury df1de0541a linux_demon: robustness to clone-then-stop, *or* stop-then-clone 2026-09-24 10:12:22 -06:00
Ryan Fleury ca0764c2e2 linux_demon: ptrace stop vs. clone notes - we cannot rely on the order! 2026-09-23 16:56:50 -06:00
Ryan Fleury c97907a7b9 fix overly aggressive tls module base vaddr lookup cache retry 2026-08-27 19:24:16 -06:00
Ryan Fleury 08d25fa39d linux_demon: fix incorrect arena buckets for probe parsing, fix zero process being incorrectly used (snap process to thread process, if wait_id does not refer to any process itself; text: fix treating R"'s as starting a herestring, if ending a non-herestring 2026-08-13 12:28:06 -07:00
Ryan Fleury a47be13d70 linux_demon: do not assume nonzero threads 2026-08-12 10:01:40 -07:00
Ryan Fleury 94392b4975 linux_demon: checkpoint 2026-08-11 14:02:40 -07:00
Ryan Fleury 338a8226a1 linux_demon: fix incorrect shdr read 2026-08-11 11:08:04 -07:00
Ryan Fleury 1770d85308 linux_demon: more helper flattening / elimination 2026-08-11 11:01:58 -07:00
Ryan Fleury b8679b4a9a linux_demon: more helper flattening / elimination 2026-08-11 09:31:52 -07:00
Ryan Fleury 8f8e14c348 linux_demon: intrinsic links for addr -> module table 2026-08-10 14:56:29 -06:00
Ryan Fleury 45aeca0bf9 linux_demon: intrinsic links in threads/processes for pid mapping 2026-08-10 14:40:43 -06:00
Ryan Fleury 6b30c395d7 linux_demon: eliminate active-trap layer; do pre-trap instruction memory read in one batch before doing write, robustly handles duplicates; eliminate deduplication inside linux demon (ultimately we want to deduplicate traps sent by the dbg engine, but we should just dedup at that layer, long before the set of traps ever reaches the demon backend) 2026-08-10 14:20:22 -06:00
Ryan Fleury 9f83e388d2 linux_demon: more reading, flattening, elimination of unnecessary helpers / layers 2026-08-10 11:56:42 -06:00
Ryan Fleury 980a9908d1 linux_demon: fix kill regressions from flattening 2026-08-09 20:27:00 -07:00
Ryan Fleury d622fdf4fd eliminate helpers for thread/process exits & process creation - just pull them out into single spot in the signal handling loop 2026-08-08 21:04:22 -07:00
Ryan Fleury 05de22df76 linux/demon: eliminate unneeded fields, h/c matching, reading etc. 2026-08-07 14:43:15 -06:00
Ryan Fleury 38e321df79 linux/demon: more flattening & extra layer elimination 2026-08-07 14:13:30 -06:00
Ryan Fleury 8c2efc5adf linux/demon flattening / clean-up checkpoint - eliminate redundant helpers, single-use functions, obsolete code 2026-08-07 13:23:42 -06:00
Ryan Fleury 7388b757d1 demon: eliminate redundant access scopes 2026-08-07 10:17:01 -06:00
Ryan Fleury 914c1946b0 fix overly-aggressive visualization of unmapped addresses (while read is stale); fix unaligned allocations of xsave blocks in linux_demon; fix some edges in custom window borders in x11 2026-08-05 12:47:29 -06:00
Ryan Fleury a0a16ea11e fix eh_frame unwinder - switching to synchronous process reads exposed losing info about a missed address read for unwinding, so unwinds never succeeded 2026-08-04 18:51:01 -07:00
Малов Андрей Владимирович 94da046fb6 demon/linux: derive symbol count from GNU_HASH 2026-06-09 16:02:29 -07:00
Ryan Fleury d73ce364b9 major clean-up pass over unwinding/module-info abstraction, + usage in the debug engine. simplified / cleaned up DWARF helpers for unwind info & expressions. decoupling unwinding / DWARF evaluation from memory read callbacks. light module info now prepared by demon layer - debug engine no longer duplicates per-backend parsing. unwind abstraction layer now does thin abstraction over unwinding backends, debug engine only calls abstraction. clean up demon to have fewer ad-hoc 'queries' on handles, and prefer sending info over debug events when possible / when it fits the usage pattern. move DWARF enum specifications to metacode, generate enums/xlists/tables/etc. decouple raddbg/radbin completely from old parsing helpers. replace portion of DWARF dumping; pull out some new parsing helpers from converter / dumper. 2026-06-02 12:11:13 -07:00
Ryan Fleury 9cc2afc659 eliminate backend-specific module parsing from debug engine ctrl thread; just pass that info back via the demon event 2026-06-02 12:11:10 -07:00
Nikita Smith 4acd8a9b86 fill out address 2026-06-02 12:10:26 -07:00
Ryan Fleury 95f4ade10d lift wait-for-process-memory-cache-update out of d_process_write, since that path runs on control thread now too as the general 'process handle write' abstraction - just move into the rd_eval_space_write path, since that wait was only for UI benefit anyways 2026-05-19 14:35:29 -07:00
Ryan Fleury dcc78314ab fix dbg_info loader treatment of nil keys, avoid bad usage of blank '.rdi' files; os_lnx_* -> lnx_* 2026-05-12 14:42:29 -07:00
Ryan Fleury 2f6d0f9aaa os -> wm; *_w32_ -> w32_*_, *_lnx_ -> lnx_*_ 2026-05-08 21:17:21 -07:00
Ryan Fleury 9a7782de47 re-slice linux/win32 backends, top-level folder is backend (demon/win32 -> win32/demon, etc.); os_gfx -> window_manager; fix linux / opengl builds for new apis/types 2026-05-08 15:21:22 -07:00