Ryan Fleury
77afc94cee
correctly apply lens type flags in shorthand chained exprs (fixes foo,x
...
hex inheriatnce)
2026-04-07 17:37:10 -06: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
960f439a59
notes
2026-04-07 15:26:43 -06:00
Ryan Fleury
f59da0be9c
extend eval language w/ identifier disambiguators - used to pick amongst many identically-named things. for instance, local_static#0 will match the first local_static, local_static#1 will match the second, etc.
2026-03-04 11:49:04 -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
Ryan Fleury
4053329d65
fix incorrect list link read
2025-10-23 16:09:44 -07:00
Ryan Fleury
c318c10486
pipe through guids in rdi conversion; sketch out 'query' meta cfg evaluation members, which are not stored but computed, but are not sets; plug in debug info guid evaluation that way
2025-10-23 12:10:23 -07:00
Ryan Fleury
b33a257bc4
switch eval viz stringification, and lister completions, over to working correctly with process-less (but not debug-info-less) evaluations
2025-10-22 16:59:24 -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
09418f1b08
pipe member finding errors through correctly
2025-10-20 16:30:59 -07:00
Ryan Fleury
2ad3e5b1cf
allow . and -> for array types
2025-10-20 16:28:07 -07:00
Ryan Fleury
4bc6240ac0
actually record hit offsets in linked list gathering artifact creation!
2025-10-20 13:45:14 -07:00
Ryan Fleury
a96c822440
use process handles in list evaluations rather than spaces - we will need to upgrade this once eval has been upgraded
2025-10-17 07:37:36 -07:00
Ryan Fleury
52680a81fe
require data field members when looking for links w/ list lens; config node ptr lists need dll
2025-10-16 15:57:43 -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
410837d26d
key list gather artifact lookups by space gen
2025-10-15 16:44:30 -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
2cc7f45ec1
promote register values to primary module space values for memory view specifically
2025-10-07 15:06:46 -07:00
Ryan Fleury
f67cf8b59d
remove incorrect space promotion rule
2025-10-07 14:51:34 -07:00
Ryan Fleury
ec978d8d46
do not use complex register union types for common registers; just use primitive integer types instead
2025-10-07 14:41:51 -07:00
Ryan Fleury
ab841035c0
preserve operand size info for shift operations, use along with typegroup to do correct sign preservation on shifts
2025-10-07 14:20:36 -07:00
Ryan Fleury
2a7177861b
remove extra watch row column cases - simplify most cases down to expr / eval. use extra 'note' for watch window cells to annotate type info - this sacrifices the full type evaluation cell, and instead uses a small extra bit of text to denote the type for quick reading. but this full type cell is not needed in most cases, and it can always be reobtained with an explicit typeof evaluation.
2025-10-06 17:06:00 -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
d2216019b9
prefer primary module, or modules with space matching the primary module's, when doing top-level debug info name matching in eval
2025-10-06 14:23:34 -07:00
Nikita Smith
1f9ce6e6ba
eval opcode stubs
2025-10-02 18:19:42 -07:00
Nikita Smith
954633bba2
add opcode for swapping top two values on the stack
2025-10-02 18:19:42 -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
d7fc7d1fa9
handle aliases gracefully in eval expansion & string iterator
2025-09-26 16:23:17 -07:00
Ryan Fleury
eda4f6bafa
preserve & visualize restrict type modifiers in eval
2025-09-26 15:32:13 -07:00
Ryan Fleury
26606d7895
do not strip enums/aliases on array index ops
2025-09-15 11:32:22 -07:00
Ryan Fleury
c33dd2869a
define synchronization primitive interface in base layer, implement using os layer; convert all usage -> base layer; use base sync primitives in lane tctx info
2025-08-18 10:46:43 -07:00
Ryan Fleury
f754b4c2db
fix pointer/array comparison paths not being enabled for not-equal; fix value arithmetic paths applying in type comparisons
2025-08-15 11:31:50 -07:00
Ryan Fleury
83650a5fe0
support unsigned -> unsigned int; support as-style casts in expressions; pack int alias in pdb-produced rdis
2025-08-15 10:56:42 -07:00
Ryan Fleury
a8f6142e63
eval/ir: do not strip enum types off when doing address operations
2025-08-11 16:18:39 -07:00
Ryan Fleury
9cff2bc7dd
symbolof operation in eval
2025-08-05 10:21:42 -07:00
Ryan Fleury
2e8c0875c8
only use type-derived sizes in eval ranges when the evaluation is an offset, not a value
2025-07-28 14:34:46 -07:00
Ryan Fleury
5134d1ce4c
adjust eval -> space range mapping to fix a few edge cases
2025-07-28 14:32:47 -07:00
Ryan Fleury
163b79e4c0
decay bitfield types in casting path, allow casting to integer types
2025-07-25 15:29:34 -07:00
Ryan Fleury
393c291f63
reflect casting changes to call-cast style
2025-07-25 15:19:35 -07:00
Ryan Fleury
1c2855a314
unwrap decorative type operators on casts when building ops for casting, to allow for graceful enum casting; gracefully skip struct/enum symbol name prefixes
2025-07-25 15:17:39 -07:00
Ryan Fleury
c43697fb18
fix type debug info table evaluations; fix preference for auto-hook-applied lhs evaluation when doing member/array accesses
2025-07-25 13:29:08 -07:00
Ryan Fleury
051bacf124
reflect cast changes in cast-calls
2025-07-23 16:05:30 -07:00
Ryan Fleury
3ae3f94db0
split unsigned => signed casting case from shrinking conversion truncation cast path
2025-07-23 16:04:59 -07:00
Ryan Fleury
cf9d736ff5
promote register space -> primary space, on space reads
2025-07-23 15:00:05 -07:00
Ryan Fleury
38f769c00d
only apply truncation to integer types, oops
2025-07-23 14:36:20 -07:00
Ryan Fleury
cd64d959ef
apply integer truncation operations on both sign/size changes, rather than just size
2025-07-23 14:31:51 -07:00
Ryan Fleury
87fa6b9239
fix <64-bit integer eval stringification path, to not interpret too many bits
2025-07-23 13:26:23 -07:00
Ryan Fleury
dc79c06031
adjust implicit accessing rules with nested auto hooks (slice-of-slices case); prefer to not show address value with string prefix content in single-line eval stringification
2025-06-30 09:33:23 -07:00