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
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
b59528edea
tab/text-pt/text-range filtered commands, hook up to right-click menus
2025-04-24 16:55:52 -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
eae15a3d41
work on command queries, distinguish floating vs. embedded
2025-02-20 13:30:28 -08:00
Ryan Fleury
f61d87e0ce
extend command info with query expressions for lister
2025-02-19 17:09:48 -08:00
Ryan Fleury
81be64dac6
more covergence, freeze controls on applicable ctrl entities when evalled
2025-02-14 13:41:02 -08:00
Ryan Fleury
204ac60999
extend fancy string lists to include per-node rasterization flags, to correctly mix flags from various fonts; pull command tables into the vocabulary map & accelerate lookups; drive icons/display-strings for commands with vocabulary map; plug in commands/fstrs to command evaluations in watch windows
2025-02-12 14:01:21 -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
Ryan Fleury
3b19334075
tear out old meta evaluation code; robustify filesystem streaming async reads
2025-02-10 14:12:44 -08:00
Ryan Fleury
d48cd460d1
begin prepping watch window ui for reintroduction of fancy rows; extend target/thread evaluations with .environment & .call_stack sketch; more convergence progress
2025-02-10 12:15:03 -08:00