Commit Graph
100 Commits
Author SHA1 Message Date
Ryan Fleury 8a8f1e4fc2 work on new hover eval ui, built using the new cfg data structure, immediate-mode view states, etc.; all watch window features -> hover eval 2025-02-05 10:34:47 -08:00
Ryan Fleury 50f8732e63 fix num/idx/vidx/vnum coordinates to correctly apply to root row in watch windows 2025-02-04 19:38:57 -08:00
Ryan Fleury a003a11425 progress on mixing control (command, insertion) rows in cfg-list evaluation, for watch windows; e.g. empty row in watch window, add-new buttons in targets/breakpoints/watchpins/etc. 2025-02-04 16:44:04 -08:00
Ryan Fleury de16c9cdef keep active tab view states hot, even if their ui is not built on any given frame (because they are not selected) 2025-02-04 14:13:01 -08:00
Ryan Fleury 90c86dc812 eval/eval-viz: pull out rules for mapping exprs/irtrees -> lookup/expansion rules; use this path in the single-line value string generator; eliminate old non-view-rulified string generation paths 2025-02-04 13:20:25 -08:00
Ryan Fleury afd113adcc rd: derive schema tree parse on startup rather than recomputing every time 2025-02-04 12:16:28 -08:00
Ryan Fleury b9756d222a eval: sketch out parse/ir cache 2025-02-04 10:29:52 -08:00
Ryan Fleury 657b78c4ef eval: separate ir_ctx -> ir_state & ir_ctx; ir_state for implicit thread-local caching mechanisms for eval, ir_ctx for explicitly supplied user info 2025-02-04 09:57:13 -08:00
Ryan Fleury 9a405bee20 eval: lookup info hook -> just pass irtree, do not recompute; cache for type-key -> auto hook tag exprs; use tags/auto-tags in lookup rule for . operator; fix tag poisoning in ir generation pass; cache for type-key -> unpacked type info; replace all unpacked type info paths with cache usage 2025-02-03 13:21:08 -08:00
Ryan Fleury 59fe6c79cb distinguish root block from non-root blocks; in root case, we do not want to do a lookup-range to generate the block's expression (but in all other cases we do) 2025-02-03 10:07:20 -08:00
Ryan Fleury 6f4533d8f5 rd: new ctrl entity meta evaluation path; ctrl entity meta evaluation cache; eval: auto-view-rules (via 'auto hook map'), + support for 'type patterns', e.g. for templates; ir generation / typechecking hook application + source-tag coloring (to avoid infinite recursion of repeatedly-applied auto view rules 2025-02-02 17:08:14 -08:00
Ryan Fleury eab5c7c971 eval_visualization: eliminate expansion-range hook; move expansions & block tree building completely to new eval hooks for lookups 2025-02-02 14:39:43 -08:00
Ryan Fleury 5bbd9f1c7e eliminate expr resolution hook in eval visualization layer; now succeeded by irgen hook 2025-02-02 12:46:59 -08:00
Ryan Fleury 07c9268941 eval: specify formal way in which tags (view rules) can fit into expression language, both in parsing & in structure; introduce ir-generation hook step in eval pipeline, transfer most of the default non-vbisualization view rule features to that layer 2025-02-01 20:50:31 -08:00
Ryan Fleury aac93b5952 move over all expansion view rules to new eval-system lookup hooks; eliminate most of old hooks 2025-02-01 17:37:24 -08:00
Ryan Fleury b1829af8c6 eliminate old per-frame cfg group cache 2025-01-30 16:52:15 -08:00
Ryan Fleury 5b82fc2339 eliminate member-filtering hack for cfg views; eliminate deref-space-ptr hack 2025-01-30 15:52:26 -08:00
Ryan Fleury 68966ba55f eval: more progress on 'sets', plug primary watch group into it; rd: more progress on watch ui based on new sets/lookups 2025-01-30 15:43:41 -08:00
Ryan Fleury 12784d9ae9 partial transition to new flexible watch table structure; more work on 'set' types; checkpoint before replacement of old view-rule-hacks with proper-eval-system support for sets/collections/etc. 2025-01-30 14:11:01 -08:00
Ryan Fleury 92e68701d0 eval: lookup rule map building; eval: use general 'set' type-kind to specify custom lookup rule; watch: new table <-> stable-point mappings 2025-01-30 10:57:29 -08:00
Ryan Fleury 394d35287a fix default lookup rule 2025-01-29 17:00:50 -08:00
Ryan Fleury baa19f3de4 begin introducing 'lookup' hook path in eval ir-tree generation, to collapse/universalize all 'access' operations, such that ., ->, and [] operations can be overridden via view rules, for cfg evaluations, and so on 2025-01-29 16:41:14 -08:00
Ryan Fleury 136a6a6d80 eval visualization: vidx <-> num mappings; helpers to move from logical nums -> rows, feed through windowed row production path 2025-01-29 10:38:04 -08:00
Ryan Fleury 84d55c8939 make some progress on watch window refinement for various row topologies 2025-01-28 18:31:34 -08:00
Ryan Fleury 2a1ab9b3be fix incorrect bytecode writing for deref-space-ptr 2025-01-28 10:42:41 -08:00
Ryan Fleury 4cc5f636fe cfg tree collection evaluation 2025-01-27 15:33:35 -08:00
Ryan Fleury b085acbc32 strip out collection type - instead we will implement collections via arrays of exprs which map to meta evals 2025-01-27 11:02:49 -08:00
Ryan Fleury c0f23c3807 further tweaks to support meta cfg eval 2025-01-27 09:22:34 -08:00
Ryan Fleury 730e8a4720 commit cfg changes to eval blob cache immediately 2025-01-24 15:55:08 -08:00
Ryan Fleury aa03955a45 first pass at meta-cfg-space writes, for cfg editing 2025-01-24 13:22:14 -08:00
Ryan Fleury 04e6eae49d progress on meta-evaluation of cfg trees & plugging into watch/eval system 2025-01-24 12:28:52 -08:00
Ryan Fleury 50000c0d6b adjust metagen to support correctly-escaped multiline string generations; sketch out setting schemas; eliminate old settings hack, move to using cfg tree & settings schema 2025-01-23 11:39:55 -08:00
Ryan Fleury 45f02b7a41 sketch out top-level schema for cfg tree 2025-01-22 15:42:21 -08:00
Ryan Fleury 9a54ae50c1 old config code elimination 2025-01-22 14:23:39 -08:00
Ryan Fleury 443fee10ec more entity code deletion 2025-01-22 09:57:40 -08:00
Ryan Fleury 7443f33069 sketch out schemas for configuration trees 2025-01-22 09:40:57 -08:00
Ryan Fleury 16a717d684 further elimination of entity-based code; more simplification/moving to cfg; begin sketching out expanded eval-viz block tree, such that each block can have its own table topology (will be useful to collapse/simplify/expand the capabilities of watch views) 2025-01-22 09:22:06 -08:00
Ryan Fleury 84fd1e9d3f big batch of work in moving from entity -> cfg; work on new universal lister system for cfg right-click menus, system processes, file system, autocompletion, procedures, etc. 2025-01-21 16:41:59 -08:00
Ryan Fleury 5cbef8f10d more entity -> cfg work 2025-01-17 15:16:23 -08:00
Ryan Fleury 4371d727fb line expressions in eval lang; begin getting off of entities for breakpoints/watch-pins/etc., move -> cfg 2025-01-17 13:34:18 -08:00
Ryan Fleury 069084c108 fix view parameter storage hook to not repeatedly duplicate key values 2025-01-17 10:35:04 -08:00
Ryan Fleury e6d0afb026 stateful query lister stack & immediate-mode autocompletion lister, via same codepath; begin hooking up views 2025-01-17 08:11:01 -08:00
Ryan Fleury 4ae032efff begin sketching out stuff for stateful listers being collapsed with immediate-mode autocomplete lister 2025-01-15 17:18:58 -08:00
Ryan Fleury 62894c098a further progress on unified lister interface 2025-01-15 15:25:49 -08:00
Ryan Fleury 6fe9a14778 eliminate stateful keybindings data structure - move to on-the-fly cfg tree usage 2025-01-14 17:30:07 -08:00
Ryan Fleury b98ebc8da4 lister applicability work - applies to commands, icons, descriptions, etc. 2025-01-14 15:16:55 -08:00
Ryan Fleury ace7db492b fix nil-cases of cfg insertion; fix incorrect root setting in cfg deep copy 2025-01-14 13:06:26 -08:00
Ryan Fleury 1b52100361 part 5: begin shifting autocompletion lister box to being unified lister/ctx-menu replacement 2025-01-13 14:18:34 -08:00
Ryan Fleury e9a10bbbd2 part 4: fix panel/tab ui key stability for new cfg-based panels/tabs; eliminate query views & begin pluggin in autocompletion lister to query input 2025-01-13 11:12:59 -08:00
Ryan Fleury 6ff2693823 part 3: more progress on entity -> cfg frontend pass 2025-01-10 15:53:40 -08:00
Ryan Fleury d9ca51b36f part 2: furthered progress on cfg switch 2025-01-10 12:56:53 -08:00
Ryan Fleury 6ce8046029 part 1: new cfg data structure & caches to replace rd_entity, rd_window, rd_panel, rd_view, etc. 2025-01-09 17:31:02 -08:00
Ryan Fleury 5b7c366234 cfg data structure first pass, serialization/deserialization, & building, to prep for all rd_entity code deletion 2025-01-08 14:54:11 -08:00
Ryan Fleury 41d4bcfe11 notes 2025-01-07 16:10:28 -08:00
Ryan Fleury 1bf66afef9 more entity code deletion 2025-01-07 15:53:22 -08:00
Ryan Fleury ee181c685b more old entity code deletion 2025-01-07 14:05:58 -08:00
Ryan Fleury 7fea55348f fix hack to stop busted animation when minimized - just bounds check the content rectangle 2025-01-07 13:30:53 -08:00
Ryan Fleury 6682613a1a entity, d -> rd convergence 2025-01-07 13:21:23 -08:00
Ryan Fleury ee9961cce4 rd: eliminate old entity code pertaining to mirroring ctrl entities - we just use ctrl entities directly now, and rd entities are just used for frontend debugger state 2025-01-07 11:49:13 -08:00
Ryan Fleury 64aa06895e eliminate code view dependence on txt/hs 2025-01-07 11:42:18 -08:00
Ryan Fleury e82041e5df 'ghost exceptions' fix - spoof hit detection needs to occur based on the demon event's reported exception address, rather than wherever the instruction pointer happens to be at the time of the exception 2025-01-07 11:04:34 -08:00
Ryan Fleury c1a2023b15 move remaining parts of frontend to xxhash, eliminate blake2; sketch out test program for debug string performance testing 2025-01-07 10:40:55 -08:00
Ryan Fleury 812cea7e73 actually, bad idea - turn that off for now... 2025-01-05 22:47:06 -08:00
Ryan Fleury fb1fb6b014 fix incorrect restriction of value committing in watch views; only commit value if initial value of edited text was unchanged 2025-01-05 22:46:08 -08:00
Ryan Fleury bc44f58a80 fix off-by-one size restriction in string chunk allocation; apply same fixes to ctrl entity string allocator 2025-01-05 22:39:10 -08:00
Ryan Fleury d70ce6465a fix incorrect initialization of catchall chunks in name allocator free list 2025-01-05 22:39:10 -08:00
Ryan Fleury fbc1f871cf add comment about previously introduced path heuristic - will need to be careful on linux 2025-01-04 17:07:34 -08:00
Ryan Fleury 47373fbb58 prioritize exe-relative debug paths - treat embedded pdb/rdi paths as relative to the exe first - if they are relative, then relative to the exe is the correct choice, but if they are absolute, then it will simply be an invalid path, and so it will just pick up the full absolute embedded pdb path on the next candidate. 2025-01-04 17:02:46 -08:00
Ryan Fleury 4cb6e889ef hack to avoid minimization causing bad panel animation state - will investigate this more fully later... 2024-12-30 10:09:29 -08:00
Ryan Fleury 94f0ae660f fix bytecode size calculation bug 2024-12-29 16:02:54 -08:00
Ryan Fleury be45100964 if regrel32 is marked as being outside the procedure frame, and if it has no type info, it seems that compilers generate that case to encode return variables which exist outside a procedure's frame, in which case we can make up the difference by grabbing the return type from the containing procedure type. this does not break existing valid cases, but may not be the fully correct rule. 2024-12-29 13:46:44 -08:00
Ryan Fleury aa42d12d0f zerofiy range dim, if max > min; fixes incorrect range intersection & read, in eval path 2024-12-20 09:00:17 -08:00
Ryan Fleury 49d11ea35b plug min-digits view rule into f32/f64 value string visualization path; also expand default precision of f32/f64 string visualization, but truncate redundant zeroes 2024-12-17 16:04:09 -08:00
Ryan Fleury e9ac6ccf7e remove heuristic of array view rule implicitly disabling string visualization; prefer explicit no_string view rule 2024-12-17 09:45:54 -08:00
Ryan Fleury 3023269a9c correctly use array sizes in value string string literal visualization; slices / array lengths now correctly apply to string visualization 2024-12-17 09:39:57 -08:00
Ryan Fleury 78309209ae clear completed task log 2024-12-16 13:02:37 -08:00
Ryan Fleury 5f1d0b4d1c adjust compact vs. default panel layout pick heuristic 2024-12-16 12:52:46 -08:00
Ryan Fleury 090c555d68 fix default space assumption in full eval path, if not inferred from the expression itself 2024-12-16 12:09:50 -08:00
Ryan Fleury 8f91ec4f88 fix __va_args__ nonsense in rdi_from_dwarf; fix incorrect mask check in linux os_file_open 2024-12-16 11:41:23 -08:00
Ryan Fleury c66d705791 toggle-press for theme colors in settings view, not click-to-open 2024-12-16 11:33:26 -08:00
Ryan Fleury 97241e73f9 more aggressively commit changes to meta-entity edits in watch windows; undo if cancelling 2024-12-16 11:26:08 -08:00
Ryan Fleury ac54281062 fix nccalcsize in fullscreen mode 2024-12-16 10:59:35 -08:00
Ryan Fleury 274b710329 notes 2024-12-09 08:35:01 -08:00
Ryan Fleury edfbcb9c85 fix incorrect line textual coordinates when triple-dragging code slices 2024-12-06 16:32:43 -08:00
Ryan Fleury bca1325d9a eliminate machine/file entities in frontend layer 2024-12-06 13:53:25 -08:00
Ryan Fleury 87a1dd84ec delete raddbg layer duplicative ctrl entity kinds / related code; we are now fully moved onto the ctrl system for ctrl entities 2024-12-06 12:31:37 -08:00
Ryan Fleury 751626446a pending thread names in ctrl entity system, for cases where a thread name is established before the thread is reported as being created, and the id is used to correllate 2024-12-06 12:31:37 -08:00
Ryan Fleury 59e2d7de61 eliminate old universal entity ui; eliminate old stop explanation string generation path 2024-12-06 12:31:37 -08:00
Ryan Fleury cd64657746 adjust disasm snapping rules, to not open disasm in cases where we can infer user doesn't have/want it open, and also to snap correctly if we can infer that the user is actively viewing/using disasm 2024-12-06 10:27:37 -08:00
Ryan Fleury 347ce2281d clear breakpoint hit counts on restart command 2024-12-04 13:40:20 -08:00
Ryan Fleury 09cf0fb348 introduce manual clearing path in font cache layer; use to prevent permanent accumulation of font glyphs even after font resizes etc. 2024-12-04 13:34:00 -08:00
Ryan Fleury 94c4000603 adjust failure cases in conversion; adjust waiting time period in pre-emptive heuristic conversion rule; avoid bp resolution path & waiting on debug info when unnecessary 2024-12-03 11:32:57 -08:00
Ryan Fleury aee2d510d4 fix blur 2024-12-02 15:19:29 -08:00
Ryan Fleury 74004321aa adjust auto-focus-on-stop rules; only do it given stops caused by threads 2024-12-02 10:01:58 -08:00
Ryan Fleury a827c74501 adjust thread-selection-on-stop & thread-snapping rules, to prevent useless disasm snaps & incorrect thread selections in some edge cases 2024-12-02 09:44:50 -08:00
Ryan Fleury d8279c1ff3 clean up per-build natvis integration into build.bat 2024-11-20 19:41:27 -08:00
Ryan Fleury f15a4f17d1 worker thread parameterization; sketch out wide-conversion scratch program; fix one common crash case in some pdb conversions 2024-11-20 15:36:13 -08:00
Ryan Fleury adbd7fbc97 fix is-zoomed behavior in nccalcsize 2024-11-20 10:44:54 -08:00
Ryan Fleury cb4232469e adjust nccalcsize window message; we just need to coax windows into doing the copy in order to avoid resize artifacts. still not perfect, can get into a weird state, and we may need to do more full size calculation in some cases 2024-11-19 16:59:20 -08:00
Ryan Fleury a40c26a0eb fix incorrect singly-linked-list/doubly-linked-list mismatch in dbgi search cache 2024-11-19 10:41:22 -08:00