Nikita Smith and Ryan Fleury
65288208af
dbg_engine: extend trap-net range across contiguous same-source-line ranges
2026-06-02 12:10:27 -07:00
Nikita Smith and Ryan 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 Smith and Ryan Fleury
61724e88ad
event shadowing in dbg engine ctrl causes debugger to return incorrect
...
last event
2026-06-02 12:10:09 -07:00
Nikita Smith and Ryan Fleury
4648b27a06
increase wait time for memory slice in line stepping
2026-06-02 12:10:05 -07:00
Nikita Smith and Ryan 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
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
ce9f7f691a
always-refresh dev option
2025-06-20 10:55:45 -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