Commit Graph
218 Commits
Author SHA1 Message Date
Ryan Fleury e047e84433 do not assume writable module 2026-06-09 15:01:01 -07:00
Ryan Fleury 5ae286d67e setting for auto-downloading missing debug info (off by default); command for manually loading module debug info as-needed 2026-06-09 14:01:09 -07:00
Ryan Fleury 0105b06fef fix conflicting lifetimes in http read - batch of retry-response-body-pieces was conflicting with asynchronous reading state! 2026-06-09 13:14:29 -07:00
Ryan Fleury 27e1e36f5c fix incorrect marking of non-stale results by artifact cache lookup; fix view addr parameterizations when a register value is used 2026-06-09 11:24:54 -07:00
Ryan Fleury 0f02c32c89 pull failed-unwind-step register-block-restore out of each impl, just do it on the caller side; pull out module-less read-the-stack-pointer unwind fallback from pe/x64 unwinder, use in module-less unwinds in all cases; call into from pe/x64 unwinder in fallback case 2026-06-09 10:58:16 -07:00
Ryan Fleury ec4fd23e15 fix incorrect commits in new pe/x64 unwinder; fix bad unwind termination conditions 2026-06-09 10:38:08 -07:00
Ryan Fleury 9955c8c1a7 temporarily turn off symbol server stuff - switch off spoof for step-over 2026-06-09 09:27:23 -07:00
Ryan Fleury 132751777f eliminate unnecessary info in debug engine entity abstraction / demon events; adjust symbol server / debug info loading such that the debug info loader is the one who decides to kick off downloads based on presence in cache path; use cache path as key, unpack info for download requests 2026-06-08 21:06:44 -07:00
Ryan Fleury b22f9f2d8b checkpoint on symbol server 2026-06-08 17:32:07 -07:00
Ryan Fleury 5c664261a3 symbol server abstraction layer; http layer; fix to 'prefer_disasm' rule when no disassembly tabs are open; small fixes / cleanup 2026-06-08 11:10:14 -07:00
Ryan Fleury d7b59e4a39 break when value changes 2026-06-03 12:37:28 -07:00
Ryan Fleury 4d1d362ac1 adjust find-code-location path to absolutify relativized paths based on current thread/module; also respect module-relative / debug-info-relative paths in src -> voff & voff -> src mapping 2026-06-03 09:01:51 -07:00
Ryan Fleury ef5fc82e9c dead code elimination 2026-06-02 12:11:14 -07:00
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 dc61f20e3b sketch out stepping/eval exemplar testing; step-to-exit first pass 2026-06-02 12:11:04 -07:00
Ryan Fleury a0bf825169 run-to-name, use to 'seed' test binary cases' 2026-06-02 12:11:03 -07:00
Ryan Fleury 5f851ad1b0 simplify testing ipc driving stuff in raddbg layer; put in formal eval/line-from-vaddr commands 2026-06-02 12:10:52 -07:00
Ryan Fleury 4e44a3c271 get default symbol path as part of process info; sketch out windows-style path for local symbol server cache 2026-06-02 12:10:48 -07:00
Ryan Fleury 1c29112e9c first pass at per-target output log labels 2026-06-02 12:10:47 -07:00
Nikita SmithandRyan Fleury 03180247c9 rebase fixes 2026-06-02 12:10:38 -07:00
Nikita SmithandRyan Fleury c62afbcf83 normalize line endings in generated files 2026-06-02 12:10:34 -07:00
Nikita SmithandRyan Fleury a3bac20a73 rebase fixes
normalize line endings

sort test pointers

rebase fixes

rebase fixes
2026-06-02 12:10:29 -07:00
Nikita SmithandRyan Fleury 65288208af dbg_engine: extend trap-net range across contiguous same-source-line ranges 2026-06-02 12:10:27 -07:00
Nikita SmithandRyan Fleury d7e5c5a830 dbg_engine: bugfix memory fetch in step_over, step_over_inst, and step_into
and incorrect boolean logic for trap-net
2026-06-02 12:10:27 -07:00
Nikita SmithandRyan Fleury 61724e88ad event shadowing in dbg engine ctrl causes debugger to return incorrect
last event
2026-06-02 12:10:09 -07:00
Nikita SmithandRyan Fleury 4648b27a06 increase wait time for memory slice in line stepping 2026-06-02 12:10:05 -07:00
Nikita SmithandRyan Fleury b23323c03d add switch to override default logs folder 2026-06-02 12:10:04 -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 1a48155116 checkpoint on dump file parsing / cache construction; temporarily turn off crash dump command, since still wip 2026-05-19 09:56:01 -07:00
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 40885a3f59 fix unmapped address visualization when reading is impossible + stop it from terminating rest of useful visualization 2026-05-18 20:01:15 -07:00
Ryan Fleury 80d68b7f95 dbg_engine: minidump memory64 parsing; rename switch -> better thing for what it is 2026-05-18 19:40:47 -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 6d6cd7033d minidumps: initial gather / events for process/modules/threads 2026-05-16 20:53:46 -07:00
Ryan Fleury fddf353ea0 minidump format types; open crash dump command, stub out opening path in control thread; expand d_handles to support machine id, entity id, *and* 'controller kind', which can be either a dump file or a demon - this properly separates the true process control abstraction (demon) from opening a regular dump file on any machine, which will let us trivially support any kind of dump file on any platform; also fix bad cfg tree state leak 2026-05-16 18:26:23 -07:00
Ryan Fleury 58caf0d3d5 upgrade eval space reads with staleness/bad/change info, to expand process memory cache reading abilities to all evaluation spaces; unmapped address visualization (both memory view & single line eval) 2026-05-13 14:48:00 -07:00
Ryan Fleury a1778421c9 eval extended opcode for setting base offset - used for correct cross-module evaluations, fixes go-to-definition when thread is not in module of resolved identifier's symbol 2026-05-13 11:23:48 -07:00
Ryan Fleury 264abe57aa allow missing debug info in case of 'step out' - we still want to support traditional behavior especially in e.g. disassembly and so on 2026-05-13 08:40:14 -07:00
Ryan Fleury d45090a8cc adjust kerning to be rounded, rather than floor'd; adjust step-out desc 2026-05-11 19:53:54 -07:00
Ryan Fleury d1536953b0 p2r: eliminate spurious duplicate address vmap entries; upgrade step-out with block stepping functionality 2026-05-11 14:21:43 -07:00
Ryan Fleury de35a86505 fix artifact cache replaced-value deletion - this CAN NOT run if the new value == the old value 2026-05-11 13:29:29 -07:00
Ryan Fleury 52da228efe artifact_cache: fix leak of old-generation artifacts, when those artifacts are replaced by newer generation computations. artifacts can opaquely hold things like arena pointers, and so when we replace them in the cache, we need to respect the lookup api's provision of create/destroy hooks for the cache, such that the artifacts can be released correctly (using the destroy hook) before being replaced. this is separate from regular eviction. 2026-05-11 11:49:15 -07:00
Ryan Fleury d59d6a21f0 d2r2: do not duplicate line records, were being generated by columnar changes, but these are not currently supported by the debugger 2026-05-09 12:18:05 -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 0e3c821e28 collapse ctrl/d bps 2026-04-22 14:31:08 -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