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