Commit Graph
160 Commits
Author SHA1 Message Date
Ryan Fleury fe4de192e4 linux -> prefix user raddbg data with ., so we get ~/.raddbg normally - on windows keep normal style 2026-05-18 20:18:53 -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 2eb0b8b233 ctrl -> d 2026-04-22 14:53:37 -07:00
Ryan Fleury 0d8a6a4d3a ctrl -> d type pass 2026-04-22 13:37:00 -07:00
Ryan Fleury a90fbc844b merge ctrl_init / d_init 2026-04-22 12:56:15 -07:00
Ryan Fleury 2388db3998 fold ctrl layer into dbg engine - no benefit to disallowing dependence on debug engine types inside of ctrl, and it has been causing unnecessary barriers for eventual eval magic. 2026-04-22 12:44:18 -07:00
Ryan Fleury be270a8f8d fix step over/into line operations when source line maps to multiple (potentially) discontiguous code ranges, or at least line info records; this fixes weird stepping with Clang-generated line info for for loops, function prologues in Odin, amongst other similar issues 2026-04-08 14:42:30 -07:00
Nikita Smith 20d3fa4ddb normalize paths with inconsistent slashes 2026-02-20 22:08:26 -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
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 92517ef2d7 re-enable single-step on empty trap net, if no line info is present 2025-10-14 10:00:31 -07:00
Ryan Fleury ec69ebff35 fix tick-deferred command mechanism in debug engine 2025-10-07 15:50:52 -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 ad9c67ae43 eliminate old caches from ctrl layer 2025-09-26 13:44:19 -07:00
Ryan Fleury ca7bfab7ea bucket artifact cache requests by wideness/priority; do high/wide, high/thin, low/wide, low/thin 2025-09-24 17:08:08 -07:00
Ryan Fleury 5381307e90 hash_store -> content 2025-09-18 14:42:25 -07:00
Ryan Fleury 937c6c8bce eliminate radcon, eliminate unused string helpers 2025-09-16 10:17:02 -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 190b3384f9 preserve selected thread info on continues 2025-07-16 15:52:41 -07:00
Ryan Fleury 401f117653 adjust step trap net build in case of memory read failure - ensure we get correct memory read, otherwise we can generate bad trap nets during heavy load. allow high vs. low priority in async rdi loading; use low-priority in pre-emptive case 2025-06-18 08:36:41 -07:00
Ryan Fleury c282e7d4be command outputs; ipc command output reception & writing to stdout 2025-06-05 16:08:53 -07:00
Ryan Fleury 94b969f203 copyright year 2025-06-02 14:13:57 -07:00
Ryan Fleury 58df68b9be adjust good-machine-code check to factor in memory read failure mask 2025-05-22 17:15:51 -07:00
Ryan Fleury 4aeadc12b7 adjust memory reading fail conditions in trap net generation; fix early-aborting of retry loop in process memory cache lookup 2025-05-22 12:15:31 -07:00
Ryan Fleury 8bed56adde step-into-line trap nets: omit stopping at non-final call destinations with no line info 2025-05-20 16:15:03 -07:00
Ryan Fleury d709724128 fix ctrl scope mal-usage 2025-05-20 11:15:55 -07:00
Ryan Fleury 7fc39a3d97 eliminate old debug engine unwind cache 2025-05-20 11:13:04 -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 342627ae3b dead code deletion 2025-05-18 13:16:51 -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 e60e0c8555 sketch out unwind cache 2025-05-14 11:43:54 -07:00
Ryan Fleury f2bf8ccb2e layer color coverage / usage in thread colors 2025-05-09 11:15:00 -07:00
Ryan Fleury fc308c0609 command correctness/cleanup pass 2025-04-29 16:00:06 -07:00
Ryan Fleury 264dbc8199 deduplication from evaluation ctxs - just have base ctx with deduplicated info, then separate type-state, ir-ctx, and interpretation-ctx 2025-04-23 11:49:44 -07:00
Ryan Fleury 20ba4a6af9 dead code elimination, user/project setting evaluation, work on color view ui 2025-04-21 14:57:31 -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 e621d13669 frontend ui/editor & data funnelling for hardware data breakpoints 2025-04-11 17:03:36 -07:00
Ryan Fleury cde079a14d checkpoint in moving to new type-based view rule / synthetic structure hooks 2025-04-10 14:29:57 -07:00
Ryan Fleury a5d6e8a335 make eval ctxs more robust to missing info, e.g. in the test harness case 2025-03-31 13:48:19 -07:00
Ryan Fleury f5683b0f3d convergence - source view switching commands 2025-03-20 10:09:06 -07:00
Ryan Fleury e76da7892a fix bad debug info scope search usage 2025-02-21 13:57:54 -08:00
Ryan Fleury c7da3e8a13 distinguish cfg (breakpoints, watch pins) source-locations from address locations; expand breakpoint addresses to being full expressions, & use this to implement symbol breakpoints (we now support fancier address resolution breakpoints too) 2025-02-21 08:42:33 -08:00
Ryan Fleury 6c37db2105 more inline visualization; do not require qualifier if view rule names collide with locals 2025-02-11 16:36:20 -08:00
Ryan Fleury 98ec6ee3bb extend constructed type info with 'pointer depth', to distinguish between inline-depths; use in symbolizing & call stack expression formation 2025-02-11 16:16:44 -08:00