Ryan Fleury
7a59548d5b
remove 'Symbols' from section titles, now that old sections are gone
2026-04-20 09:57:33 -07:00
Ryan Fleury
881e19c842
get debugger onto new location info & symbol format
2026-04-20 09:57:33 -07:00
Ryan Fleury
fee9f9a2c3
when resolving irtrees to values, promote register spaces -> containing process space; fixes pointer casts to register values
2026-04-07 17:16:56 -06:00
Ryan Fleury
8d67460fa6
treat errored call stacks as valid call stack results - only reject on stale data. allow 0 rips for the top frames.
2026-04-01 11:06:23 -06:00
Ryan Fleury
d986ea6cd9
guard against invalid ctrl entity handle resolutions when applying ctrl events; otherwise some edge cases can cause invalid writes.
2026-03-31 07:05:44 -07:00
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
e907d895c6
refactored Linux layer to use static types for the entities
2026-01-22 13:30:39 -08:00
Nikita Smith
952afd49a7
generalize machine ops
2025-12-16 10:40:48 -08:00
Nikita Smith
962f0e30ae
WIP fork
2025-12-09 09:56:43 -08:00
Nikita Smith
38dbcde3f4
debug info path entity is needed otherwise unwinder fails to map key to RDI
2025-12-02 17:00:05 -08: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
7cafde3376
revert DWARF changes to commit bda3a71379
2025-11-13 10:53:29 -08:00
Ryan Fleury
17ec73d752
dwarf cleanup checkpoint
2025-11-10 17:41:01 -08:00
Nikita Smith and Ryan Fleury
920a3ab3b7
discard unknown FDEs
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
c8c993d4e8
filter for threads
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
fdb1ad5ab6
do not unwind with PE when DWARF unwinder exits with stale flag
2025-11-07 14:39:46 -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
c0d28e0ced
only retry call stacks on stale / gen tears, *not* on errored frames.
2025-10-23 17:41:49 -07:00
Ryan Fleury
c8c25c0f98
processless debug info loading/unloading; separate modules from dbg infos in eval; keep dbg infos around after debugging via config, correllate to new modules, evict when necessary, when generating new versions
2025-10-22 16:39:29 -07:00
Ryan Fleury
2f315911a5
switch off rd_cfg to cfg layer
2025-10-16 15:00:13 -07: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
ac9d6e861c
first pass at list view, w/ asynchronous offset chain gathering
2025-10-15 16:33:59 -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
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
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
28bb158c61
revert last change - that will forever-retry those reads! need a slightly different retry mechanism
2025-10-09 11:10:14 -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
96477c65dd
switch to martins hash
2025-10-08 12:58:59 -07:00
Ryan Fleury
166b84cf30
eliminate content-layer-specific u128 hash
2025-10-07 16:24:54 -07:00
Ryan Fleury
cd26bf1bcc
only submit empty ctrl process memory artifacts if we have no other history; only retry on mem gen tears & valid ranges
2025-10-07 16:06:59 -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
2acf77ad9e
fix impossible disasm loading condition; do not go wide on dbgi matching unless we have significant-enough dbgis
2025-10-07 11:34:30 -07:00
Ryan Fleury
835a57f918
extend dbgi matching system with preferred dbgi key, to disambiguate results - fill with primary module dbgi in eval, to always prefer selected thread context when applicable
2025-10-06 14:31:57 -07:00
Ryan Fleury
213dc6a6a7
fix busted ctrl memory stream, when bad memory & null terminated ( #647 ); do not refresh repeatedly due to loading, if any raddbg window is not focused
2025-10-06 11:38:58 -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
7707ba1d60
dwarf debug info option in builds, fix heuristic to try to load debug info from exe itself
2025-10-01 15:36:36 -07:00
Ryan Fleury
db66beaf22
correctly interpret conversion completions; single high priority re-loop bit for async threads
2025-10-01 14:32:44 -07:00
Ryan Fleury
24406d1e4e
use lack of user bps as hint that no rdis are necessary to wait on
2025-10-01 11:24:37 -07:00
Ryan Fleury
cd048a878b
fix module req cache bug; fall back on exe path as debug info
2025-09-30 17:54:31 -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
5fa3efe76a
bugfix evictions, correctly maintain downstream content hash counts
2025-09-26 15:09:47 -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
99195282f1
async call stack tree computation -> artifact cache
2025-09-26 11:57:08 -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