Nikita Smith
8005c31276
remove x86 register code
2025-12-05 16:39:02 -08:00
Nikita Smith
ce77442d37
fix x87 register layout
2025-12-05 16:36:46 -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
Ryan Fleury
c738768e41
demon/win32: do not assume actual_read is valid after a failed process memory read
2025-10-09 16:05:13 -07:00
Ryan Fleury
284524e0c4
fix incorrect ctx check in win32 demon
2025-10-06 14:35:41 -07:00
Ryan Fleury
0d15b8670b
eliminate bifurcated rw lock path based on exclusive mode; promote thread operations to base layer, use os layer as impl; first pass on moving file streaming layer to base layer's async wavefront
2025-09-17 14:47:55 -07:00
Mārtiņš Možeiko and Ryan Fleury
d8bb8c76c6
add shadow stack register and read it in win32 thread context
2025-09-03 09:36:20 -07:00
Ryan Fleury
cdec8d5980
ctrl/demon: fastfail exception codes / notes; p2r2: finish symbol conversion etc. in new wavefront-style version
2025-08-19 16:47:12 -07:00
Ryan Fleury
c33dd2869a
define synchronization primitive interface in base layer, implement using os layer; convert all usage -> base layer; use base sync primitives in lane tctx info
2025-08-18 10:46:43 -07:00
Ryan Fleury
cd8c3a2172
enable read/write bits on just read data breakpoint on x64 - there is no way to do a read-only (without write) data breakpoint
2025-08-06 11:50:01 -07:00
Ryan Fleury
9ef87e9d56
fix to match 32 -> 64 change in demon/win32
2025-07-29 14:22:23 -07:00
Ryan Fleury
4d7088d321
do not pre-emptively exit the debug event loop on timeout unless we actually have debug strings
2025-07-25 14:21:31 -07: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
fc8b521b2c
adjust demon to correctly produce, & ctrl to correctly process, breakpoint events which cannot be correlated to a high-level UI-defined breakpoint state. this catches, for example, data breakpoints which are programmatically set by the user program.
2025-07-16 11:54:02 -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
4926f6cfc8
programmatic address range annotations; pipe -> ctrl entities; render in memory view
2025-06-08 17:37:55 -07:00
Ryan Fleury
94b969f203
copyright year
2025-06-02 14:13:57 -07:00
Ryan Fleury
56b975a6b1
adjust async call stack querying API to guard against waiting in clearly-invalid cases (trying to wait for call stacks when running, for example); also eliminate logs
2025-05-20 10:36:44 -07:00
Ryan Fleury
a379134ed8
demon tweaks / debugging; adjust call stack cache reading API to account for high-priority path, where we want to try computing the thread's call stack immediately
2025-05-16 21:12:58 -07:00
Ryan Fleury
e513af5361
ditto
2025-05-14 15:30:49 -07:00
Ryan Fleury
60e47fb821
unwind cache -> callstack cache
2025-05-14 15:28:57 -07:00
Ryan Fleury
8b7e7471f5
markup: thread id based APIs for names/colors; handle names/colors-before-thread, or id-based application, in ctrl layer
2025-05-03 16:45:45 -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
6a5fa58d8a
dedup flagged traps, so we don't write the same data breakpoint into the registers multiple times
2025-04-12 14:47:29 -07:00
Ryan Fleury
97e3c73086
fix flagged-trap-search
2025-04-12 14:39:38 -07:00
Ryan Fleury
0f380e9228
transmit user breakpoints hit from demon -> ctrl using ctrl-defined IDs, correllate those IDs to rd-defined IDs, use rd-defined IDs in stop events to count bp hits, rather than re-resolving breakpoints. further fixes & work on first pass of data breakpoints
2025-04-12 14:28:38 -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
Martins Mozeiko and Ryan Fleury
0c999d70dc
better error message if CreateProcess fails
2025-04-07 10:42:54 -07:00
Nikita Smith
1c518bfa07
prefix COFF machine enums with "Type"
2025-03-31 22:53:10 -07:00
Ryan Fleury
bca5169447
eliminate manual console creation & needs-console detection; use user-error mechanism for process creation failure
2025-03-31 16:38:18 -07:00
Ryan Fleury
3911a66b30
fill out first pass implementations of raddbg_markup features; thread names, thread colors, format-string output-debug-string helper, attachment-checking
2025-03-28 10:56:41 -07:00
Ryan Fleury
a826afd4d6
merge part 2
2025-03-25 16:30:05 -07:00
Ryan Fleury
c4f4b5ff01
merge
2025-03-25 16:21:51 -07:00
Ryan Fleury
4316325b33
demon win32: only alloc console when launching target if the exe is not a windows gui pe subsystem
2025-03-19 16:08:29 -07:00
Nikita Smith
153bbc7b1d
pass over COFF layer
...
- updated naming convention on structs, enums, and macros to conform with code base style
- moved related structs closer to each other
- moved parser code to separate file
2025-01-20 19:31:52 -08:00
Ryan Fleury
3cd32fa235
correctly prepare paths for windows launches in demon
2024-11-03 14:45:21 -08:00
Ryan Fleury
4769d0a8d4
narrow scope of name resolution for debugger collections; default launching to not attach to child processes, set up msgs to parameterize this
2024-10-28 15:37:28 -07:00
Ryan Fleury
e376ad8113
stdout/stderr/stdin file path overrides for targets
2024-10-17 11:25:47 -07:00
Ryan Fleury
9932a30ef9
entity parameter tree equipment; architecture -> arch
2024-08-29 13:16:50 -07:00
Ryan Fleury
6d30455e76
further progress on eliminating file entities; further entity simplification; set up external identifier resolution map for evaluating 'meta' variables; sketch out generalized entity serialization path
2024-08-13 11:39:25 -07:00
Ryan Fleury
b18e437337
git normalize all files
2024-07-26 11:13:47 -07:00
Martins Mozeiko and Ryan Fleury
ce7c8d5244
avx512 registers & fixes for getting & setting x64 context
2024-07-23 08:43:35 -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
b5b5aca691
log win32 demon resume code
2024-06-19 12:07:08 -07:00
Ryan Fleury
435877824a
oh NO... never mind... mystery solved... be VERY CAREFUL ABOUT STATE MACHINES! fixes incorrect non-resets of win32 demon 'exception not handled' state, which was buggily leading to DBG_EXCEPTION_NOT_HANDLED being passed to ContinueDebugEvent
2024-06-19 11:56:47 -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
f6eec680bc
adjust single stepping rule to be robust to non-single-step events; this is still not what the issue is pertaining to the stepping bug...
2024-06-18 17:19:17 -07:00
Ryan Fleury
723c7c5d4d
further tightening up of win32 demon run path; take a few fastpaths on x64; speeds up conditional breakpoints
2024-06-14 09:50:33 -07:00
Ryan Fleury
fb9824dc24
remove unnecessary ctrl log flushes, which seriously bloated the ctrl thread running path
2024-06-14 07:57:46 -07:00