Commit Graph

195 Commits

Author SHA1 Message Date
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
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 26606d7895 do not strip enums/aliases on array index ops 2025-09-15 11:32:22 -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 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 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 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
Ryan Fleury 0018147b95 bounds-check di matches 2025-06-27 14:40:13 -07:00
Ryan Fleury d4c15d9089 pull out type-only identifier resolution and switch to match store; eliminate synchronous matching work 2025-06-27 13:55:18 -07:00
Ryan Fleury 5750c17c80 eliminate old slow identifier resolution path 2025-06-27 12:34:46 -07:00
Ryan Fleury b315bf6811 switch eval debug info symbol name resolution to using async match store 2025-06-27 11:58:04 -07:00
Ryan Fleury 36f5597d8e eliminate unneeded path-renormalization in debug info cache lookup 2025-06-25 10:52:29 -07:00
Ryan Fleury 00fd597658 fix ptr/ref coverage in expansions 2025-06-03 13:55:37 -07:00
Ryan Fleury 94b969f203 copyright year 2025-06-02 14:13:57 -07:00
Ryan Fleury a111c21972 fix constant evaluation 2025-05-29 17:12:44 -07:00
Ryan Fleury 770fbe9459 constant evaluation 2025-05-29 17:04:01 -07:00
Ryan Fleury 477e2b19da fix preservation of ir tree chain w/ multiple composing type views 2025-05-29 13:40:46 -07:00
Ryan Fleury 14cfd87f68 start sketching out basic unreal type views 2025-05-28 18:00:16 -07:00
Ryan Fleury f116d88b08 wildcard instance identifier resolution in type views; ?{arg1, arg2, arg3} in type view pattern -> use arg1, arg2, or arg3 in expression 2025-05-28 15:41:48 -07:00
Ryan Fleury d0a2c0f22c auto hook list(expr) -> auto hook list(match), where match includes both an expression and a list of comma-delimited wildcard instances 2025-05-28 14:37:44 -07:00
Ryan Fleury b94535b20b fix array-indexing in type evaluation mode 2025-05-19 22:22:47 -07:00
Ryan Fleury 5cb2a7bbde fix usage of [] operator on pointer values; fix incorrect interpretation of []s as assembly style derefs in chained cases 2025-05-17 13:05:07 -07:00
Ryan Fleury a67f326f78 eliminate redundant recomputation of ir extensions 2025-05-14 10:27:01 -07:00
Ryan Fleury e10f0489da record which irtree-and-type generations were produced via auto-hooks; skip those when doing typeofs 2025-05-13 14:19:30 -07:00
Ryan Fleury 89e93459d7 fix ufcs-style 'raw' lens application 2025-05-13 13:51:56 -07:00
Ryan Fleury 8b8c88f310 preserve whole chain of parent irtrees, do not simply apply only to autohook overrides; straighten out some event consumption weirdness in interaction between autocompletion floating view & query floating view; ensure we mark the cfg space as dirty when modifying strings 2025-05-13 13:44:14 -07:00
Ryan Fleury 73c91ae2bc eval: adjust array expansion, use parent key of pointer argument, rather than key of pointer argument, to scope count expression evaluation; fix up a few edge cases with $. and implicit $ member accesses; make omit much more powerful, by allowing list of arguments to control all expansion expressions, rather than assuming only member names 2025-05-13 10:19:47 -07:00
Ryan Fleury fe3cac7ac3 parameterize irtree generation path with identifier resolution rules; in most cases, we want the usual order: implicit accesses -> locals -> registers -> globals/tlocals/types/procedures -> macros; but if we are specifically evaluating a call expression tree, we want to prefer callables - in this case, macros should be prioritized. 2025-05-12 11:56:57 -07:00
Ryan Fleury e491a76861 prevent mutating nil trees in irtree generation 2025-05-09 09:58:39 -07:00
Ryan Fleury b30e928501 fall back on creating a synthetic symbol name when a chain of leaf-identifier member accesses fail, and produce synthetic leaf-identifier expression to try to resolve it that way. 2025-05-08 14:00:54 -07:00
Ryan Fleury ead193ee3b move enum value by-name lookup onto cached fastpath 2025-05-07 17:08:28 -07:00
Ryan Fleury 9c296cb9b2 fixes for arithmetic with bitfields; bitfield -> numeric value path in irtree generation; fix bad stomping / mutation when generating a synthetic UFCS tree 2025-05-07 14:19:39 -07:00
Ryan Fleury 1284c25b9e sketch out better usage of expansion info in text visualizer; notes; naming pass 2025-05-07 08:58:12 -07:00
Ryan Fleury 2919ecb135 more robustness to malformed expressions 2025-05-07 06:25:47 -07:00
Ryan Fleury 3a46e66efa expand eval expression tree location info to being based on textual range, rather than just offset 2025-05-01 09:05:42 -07:00
Ryan Fleury ed4fe5e3d1 fix auto-downcasting to work in all cases 2025-05-01 08:27:03 -07:00
Ryan Fleury b0dd7700d7 apply autocasting below the ir-tree generation level of lens calls, so that we don't accidentally strip away lenses 2025-04-30 17:04:10 -07:00
Ryan Fleury 78928974cb implicit member access path 2025-04-30 16:38:25 -07:00
Ryan Fleury b1d63cd130 unattached process evaluation / lister 2025-04-30 13:34:05 -07:00