Ryan Fleury
a23375a070
re-plug raddbg markup data section into module image info cache; fix detachment signifying
2026-03-29 11:05:45 -07:00
Nikita Smith
1602a9e6ea
runtime target OS handling
2025-11-27 11:17:47 -08:00
Nikita Smith
f9561cb618
add support for CFA in the eval system
...
Canonical Frame Address is a DWARF-only concept encoded in the unwind info.
Debugger must store this data for each call frame and provide it to
the eval system based on selected stack frame.
To abstract over format details, we introduce a "Frame Unwind Context".
For DWARF, this context maintains the intermediate unwind state and exposes
the CFA, whereas for PE, it remains empty.
2025-11-26 15:42:40 -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 and Ryan Fleury
793cd90604
zero out IP when reached last frame
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
7f705923e6
parse CIE and FDE out of runtime ELF
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
3b81e1a0e9
connect DWARF virtual stack unwinder
2025-11-07 14:39:45 -08:00
Ryan Fleury
8dbfa97c71
adjust list lens member picking rules - use default argument, then fall back to next, prev, or the first pointer to an identical type
2025-10-16 11:10:00 -07:00
Ryan Fleury
87edc583bf
define ctrl entity eval spaces once, in ctrl layer - nest in rd layer
2025-10-13 12:40:28 -07:00
Ryan Fleury
9022efd3ab
new strategy - allow artifact creation to report a completed generation which differs from the requested generation, thus preventing duplicate gen requests (in the case of ctrl process memory)
2025-10-09 11:24:48 -07:00
Ryan Fleury
fe6eff9d3b
pass requested gen to artifact creation hooks, use to retry ctrl memory reads on many successive mem gen bumps - prevents spurious duplicate hashes in content store history
2025-10-09 10:40:31 -07:00
Ryan Fleury
783988c0ac
expand ctrl process memory cache access to allow waiting for fresh results, rather than any results; use when doing a ctrl process memory write, to prefer viewing less stale data on exact frame. also expand trap net generation with success bit, use to retry stepping commands across frames if process memory reads are hindered. abort after N retries.
2025-10-07 15:44:35 -07:00
Ryan Fleury
a58c23754a
di2 -> di; delete old dbg info layer, delete async layer
2025-10-01 17:30:08 -07:00
Ryan Fleury
4964a94cd3
transition to dbg_info2
2025-09-30 12:52:32 -07:00
Ryan Fleury
bf27344a9b
replace extra gen parameters in artifact creation hook; replace with explicit cancellation signal, passed by caller
2025-09-30 11:01:04 -07:00
Ryan Fleury
ad9c67ae43
eliminate old caches from ctrl layer
2025-09-26 13:44:19 -07:00
Ryan Fleury
b2acc13fb8
eliminate old async call stack computation / call stack cache code
2025-09-26 12:00:25 -07:00
Ryan Fleury
cd7e2d3f89
breakpad dumping: include pdb name if missing exe name, include pdb guid if no exe hash
2025-09-26 11:37:07 -07:00
Ryan Fleury
c4bf855af9
extend artifact cache nodes with last requested vs. last completed gen; pass last requested gen to artifact creation to support cancellation
2025-09-25 14:59:29 -07:00
Ryan Fleury
4b335103bc
begin moving call stack computation / cache to artifact cache; fix incorrect broadcast val location
2025-09-24 15:04:45 -07:00
Ryan Fleury
7e05a60ffe
checkpoint on more artifact cache port of ctrl process memory streaming
2025-09-23 17:05:45 -07:00
Ryan Fleury
141b6c1396
sketch out artifact cache hooks for file streaming layer
2025-09-23 11:58:00 -07:00
Ryan Fleury
6cdce22284
expand artifacts a bit more, to be more useful with larger-than-ptr but not huge allocations
2025-09-23 11:27:56 -07:00
Ryan Fleury
9787c698e6
sketch out new async path for ctrl memory streaming
2025-09-23 10:58:17 -07:00
Ryan Fleury
5381307e90
hash_store -> content
2025-09-18 14:42:25 -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
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
36dcd65a83
first pass at call stack tree evaluation
2025-08-11 16:08:04 -07:00
Ryan Fleury
056604fb94
sketch out tline -> vline text wrapping cache types; first pass of async call stack tree builder
2025-08-11 13:46:06 -07:00
Ryan Fleury
8d1de1b24c
report user errors from ctrl thread more vigorously
2025-07-23 14:06:17 -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
ad995374bb
cache module requirement disqualifications; reuse within scope of same run (& thus same user bps)
2025-06-20 07:57:16 -07:00
Ryan Fleury
bfe90f5906
plug in thin pdb analysis to determine if waiting on a full RDI conversion is necessary - do not wait if RDI is determined to be unnecessary given breakpoints!
2025-06-19 14:48:13 -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
7dc4399300
dead ctrl process memory cache elimination
2025-05-19 19:38:27 -07:00
Ryan Fleury
b9e3df4cae
pass over hash store layer / all users, to switch to explicit 64-bit root alloc/dealloc, and 128-bit ids, for a full 192-bit hs key
2025-05-19 14:52:28 -07:00
Ryan Fleury
7a44cbbd0d
adjust high priority call stack timeout threshold
2025-05-17 08:41:51 -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
86eabe0d6d
offer priority selection in call stack retrieval; prioritize selected thread & operations which require a result; adjust call stack builder path to be a bit more generous while waiting for memory reads
2025-05-15 21:57:50 -07:00
Ryan Fleury
9a805b8bb5
adjust call stack cachc committing mechanism, to guarantee commits in face of scope touches, and to ensure waiting for new commits in face of cache lookup
2025-05-15 13:27:11 -07:00
Ryan Fleury
e5d6a49055
first pass at call stack cache, need a lot of clean up before this is working...
2025-05-14 21:44:09 -07:00
Ryan Fleury
a84739e1c4
set up async cached call stack building
2025-05-14 20:15:10 -07:00
Ryan Fleury
1b26c3f180
entity_ctx * entity_store -> entity_ctx, entity_ctx_rw_store, thread-local entity_ctx_lookup_accel
2025-05-14 19:11:02 -07:00
Ryan Fleury
1e6b3ee2e6
split read-only ctrl entity operations from read-write ctrl entity operations, represent in type system via EntityCtx vs. EntityStore
2025-05-14 18:35:25 -07:00
Ryan Fleury
60e47fb821
unwind cache -> callstack cache
2025-05-14 15:28:57 -07:00
Ryan Fleury
81483f5100
eliminate per-callstack-frame 'parent num' - redundant info
2025-05-14 14:41:13 -07:00
Ryan Fleury
99a8108b2a
eliminate now-unnecessary debug info references in call stack data structure
2025-05-14 13:53:24 -07:00
Ryan Fleury
b49f4559ce
get main unwinding path off of requiring entire ctrl entity store
2025-05-14 13:32:32 -07:00