Commit Graph
27 Commits
Author SHA1 Message Date
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
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 4840b46b84 dbg_engine: shift thread register reads / process memory reads -> abstraction layer, rather than directly calling into demon; cache crash dump info, like thread info & memory ranges; implement thread reg reads & memory reads for dumps by using this acceleration structure when we have a dump handle, instead of regular demon reads. 2026-05-18 14:51:17 -07:00
Ryan Fleury aea4a4ff9d eliminate os_core, move into base; eliminate regs, move into arch abstraction layer, define x64 regs in x64 layer; move win32 backend for os core (now base) functionality to top-level win32 layer 2026-05-08 15:21:21 -07:00
Ryan Fleury 738163dcbd demon: gather success status of setting traps, but do not fail on failure 2026-05-05 12:35:20 -07:00
Ryan Fleury 356237418f demon: always gather 'active' traps - do not require success 2026-05-05 12:32:00 -07:00
Nikita Smith e907d895c6 refactored Linux layer to use static types for the entities 2026-01-22 13:30:39 -08:00
Nikita Smith 962f0e30ae WIP fork 2025-12-09 09:56:43 -08:00
Nikita Smith 0565fdef0a WIP add support for GNU LibC TLS model
Unlike on Windows, TLS index isn't part of the module format. glibc stores
it in the opaque link_map struct. There are many different heuristics
a debugger can use to locate it but most of them are unreliable and
prone to errors, or don't work when debugger attaches to a process.
We adopt the newer approach of looking for special symbols
in glibc that provide TLS index offset. These symbols were added in
2021, so programs linked with older glibc won't have TLS support.
2025-11-21 16:41:35 -08:00
Nikita Smith b7fb4fe04d WIP improved signal handling in multi-threaded programs 2025-11-19 11:38:22 -08:00
Nikita Smith c4c9ef5182 WIP: got Linux to the point where single stepping and breakpoint
events are being reported correctly to the debugger
2025-11-07 14:39:46 -08:00
Nikita Smith 78f2e641bc fix program header rebase issue in non-PIE exes, and export program header
info through DEMON event
2025-11-07 14:39:45 -08:00
Ryan Fleury 6e6a2df0cb implement 'priority thread' in demon, to prefer debug events from selected thread - greatly improves multithreaded stepping 2025-07-16 15:38:27 -07:00
Ryan Fleury 709bc2cfab float run/mem/reg generations out of demon, into core; fix issue of demon access synchronization w/ mem gens, causing failure-to-update-stale-parts-of-process-memory-cache 2025-06-28 10:02:51 -07:00
Ryan Fleury 94b969f203 copyright year 2025-06-02 14:13:57 -07:00
Ryan Fleury 14cfd87f68 start sketching out basic unreal type views 2025-05-28 18:00:16 -07:00
Ryan Fleury 7ba027e841 sketch out new markup API for programmatic address/data breakpoints 2025-04-12 15:21:48 -07:00
Ryan Fleury ecad70ca19 pass through data breakpoint length, more progress on fixes/correctness in first pass 2025-04-11 18:07:00 -07:00
Ryan Fleury 929e68d074 first pass at setting up x64 debug registers for data breakpoints 2025-04-11 17:49:16 -07:00
Nikita Smith 652dcafbbf demon helper for reading cstrings 2024-10-17 18:46:59 -07:00
Ryan Fleury 9932a30ef9 entity parameter tree equipment; architecture -> arch 2024-08-29 13:16:50 -07:00
Ryan Fleury 1b74fb0760 simplification pass over os core layer; simplification pass over base arena; set up build.sh; stub out new spot for linux os core 2024-07-15 17:23:01 -07:00
Ryan Fleury 376a7c48a5 pass over logging, include a lot of extra info in ctrl thread log; demon abstraction for target-process memory allocation/protection; switch spoofs to being in allocated page, rather than at bogus address 2024-06-19 11:12:21 -07:00
Ryan Fleury bf2d5640fa go back to per-inline-site line tables; eliminate call location for inline tables; these can be encoded via parent line tables; wire up parsed line tables to inline site production from symbol conversion phase 2024-06-13 15:18:29 -07:00
Ryan Fleury 995804cc78 demon2 -> demon; eliminate original demon layer 2024-03-22 16:33:48 -07:00
Ryan Fleury a42ec6aeff initial upload 2024-01-10 19:57:50 -08:00