Commit Graph
100 Commits
Author SHA1 Message Date
Ryan Fleury 9504946376 entity view filtering 2024-02-05 12:08:50 -08:00
Ryan Fleury e03e1dd136 eval lexer: same as last 2024-02-05 11:28:29 -08:00
Ryan Fleury 0b6b0947ed eval lexer: allow a few more corner cases of various compiler/linker-inserted identifiers, so that eval works in all cases 2024-02-05 11:26:37 -08:00
Ryan Fleury 38b8bfd6fb fix ordering of event consumption w/ filter box 2024-02-05 11:24:31 -08:00
Ryan Fleury 87e0e9a7e9 bugfix truncated string hover rule 2024-02-05 11:19:34 -08:00
Ryan Fleury 6e874c7449 syschar -> defwindowproc 2024-02-05 11:07:36 -08:00
Ryan Fleury d2d3d14c41 demon/win32: roll back on all hit traps, even if explicit. the previous implementation would silently skip threads past explicit traps that they hit, as a way of implicitly storing the fact that trap exceptions had been reported, and the user could continue past them. this resulted in incorrect instruction pointer display in those circumstances. this change adjusts this, so that after a trap exception of any kind, the instruction pointer is ALWAYS rolled back. to ensure that the trap is not repeatedly hit, if the associated exception has already been reported, to allow the user to e.g. step over traps (this is the behavior of Visual Studio), additional state is stored per-thread-entity, which allows a subsequent demon_os_run to adjust RIPs past their previously reported traps before running again. 2024-02-05 10:47:57 -08:00
Ryan Fleury 2359c82fba extend ctrl process memory cache with waiting mechanism; employ to wait for changes to propagate through process memory cache, when forcibly mutating debuggee process memory 2024-02-05 10:04:00 -08:00
Ryan Fleury f2c74cbcb2 float mousemove detection & ui mouse position rules down to ui core layer 2024-02-05 09:29:50 -08:00
Ryan Fleury f03f3e4421 robustify ctrl memory streaming cache & texture cache layer to unreasonably large sizes/dimensions 2024-02-05 09:24:00 -08:00
Ryan Fleury 95eea70682 fix failure condition in entry point detection 2024-02-05 08:54:45 -08:00
Ryan Fleury 762013899f switch entry point detection/trap strategy to finding *all* possible candidates, and trapping all of them, rather than forcing the ctrl thread to decide on one specific entry point voff 2024-02-05 08:41:18 -08:00
Ryan Fleury 0be4680ec9 os_gfx -> report mouse move events; still allow passive mouse interaction if window is unfocused, but have recently received mousemove events 2024-02-03 18:04:21 -08:00
Ryan Fleury 985a6f37e9 notes 2024-02-03 17:37:39 -08:00
Ryan Fleury f9e2aa99a9 fix padding calculation - prohibit all overlapping members 2024-02-03 09:56:24 -08:00
Ryan Fleury 509089d95d remain robust to busted range queries for ctrl process memory cache 2024-02-03 09:20:31 -08:00
Ryan Fleury 647558b140 fix plural language in singular scenarios 2024-02-02 17:28:22 -08:00
Ryan Fleury cbe842c5ec dont do padding members for unions, oops 2024-02-02 17:15:55 -08:00
Ryan Fleury f796f64c2f process memory read failuer visualization in eval watch view tables 2024-02-02 17:05:55 -08:00
Ryan Fleury 36d749ddb5 slightly stronger padding visualization 2024-02-02 16:46:54 -08:00
Ryan Fleury 7e589e8cd2 padding visualization 2024-02-02 16:42:08 -08:00
Ryan Fleury 708517a668 move fuzzy range match visualization into formal ui rendering path; write dedicated truncated fuzzy match rendering path; fixes some visual bugs & makes all fuzzy range match visualization consistent and not ad-hoc 2024-02-02 15:35:44 -08:00
Ryan Fleury 876d9338fc auto-close universal ctx menus when entities/tabs invalidate; some visual fixes 2024-02-02 14:13:00 -08:00
Ryan Fleury 6897c0bb57 only show mid-row cache line boundaries when unexpanded, since the expansion will show more precise info 2024-02-02 12:53:34 -08:00
Ryan Fleury 15e239a0dc cache line boundary visualization 2024-02-02 12:47:51 -08:00
Ryan Fleury 5d3aa301f0 enum type evaluation visualization - can now use watch windows to inspect all possible enum values 2024-02-02 11:50:21 -08:00
Ryan Fleury 847749337b eval parser: more coverage for c++-compiler-generated & various C++-style identifier names 2024-02-02 11:33:06 -08:00
Ryan Fleury 542753ddcc deduplicate editability/expandability determination path for viz row build 2024-02-02 11:12:20 -08:00
Ryan Fleury 9d8efa3a44 deduplicate common parts of viz row building 2024-02-02 11:03:14 -08:00
Ryan Fleury 410a340a09 oops -> carry over dbgi target with viz block splits 2024-02-02 10:13:39 -08:00
Ryan Fleury 8958b414e2 properly parameterize viz block & viz row building paths based on dbgi table target 2024-02-02 10:09:30 -08:00
Ryan Fleury ac895a85eb eliminate old eval watch view code 2024-02-02 09:30:22 -08:00
Ryan Fleury ad57a0d3e8 stop following expansion nodes at the first non-expanded one, when converting watch view selection coords when ancestor has been collapsed 2024-02-02 09:28:15 -08:00
Ryan Fleury 20ff4acecc simplify/collapse/deduplicate eval viz block building code; correctly build filtered-info-table-sorted expansions for filtered debug info table watches; eliminate special-case empty row in watch views, just feed everything through the viz blocks path 2024-02-01 17:05:08 -08:00
Ryan Fleury be4c52b7ef first part of collapsing globals/types/threadlocals path into being single viz block building path; more filtering ui work 2024-02-01 13:54:34 -08:00
Ryan Fleury 6740520bbe straighten out table coordinates <-> viz block coordinate space mappings, since search-backed tables no longer can assume those two things are the same; clang -> o2; fix clang build 2024-02-01 13:21:07 -08:00
Ryan Fleury 28fdd791ae extend eval viz blocks & windowed row build path with optional member info - use to extend watch type info visualization with size/offset information 2024-02-01 10:59:55 -08:00
Ryan Fleury 45b59e4cc4 apply fuzzy filtering correctly to globals/thread-locals/types views 2024-01-31 15:06:20 -08:00
Ryan Fleury 02979ba26c first pass at equipping frontend line edit with fuzzy match range visualization; shift new debug-info-range viz block -> viz row path to using a backing filtered item array to map the abstract index space into the debug info table spaces 2024-01-31 14:54:49 -08:00
Ryan Fleury f3f0e2a697 plug in basic, half-finished filtering functionality to watch/locals/registers/types/globals/threadlocals views 2024-01-31 14:35:14 -08:00
Ryan Fleury 630272ec37 expand dbgi asynchronous fuzzy matching system to allow selection of target table; this allows asynchronous fuzzy matching over types, globals, thread locals, and procedures 2024-01-31 14:22:12 -08:00
Ryan Fleury 41b853b874 simplify fuzzy matching path to a single query 2024-01-31 14:07:16 -08:00
Ryan Fleury 071ff82673 introduce general-purpose filtering path for tabs; control whether or not it is enabled via view spec flags. + feature flags for automatically bring up filtering box when typing 2024-01-31 14:01:53 -08:00
Ryan Fleury 9106190893 first pass at types view 2024-01-31 12:31:09 -08:00
Ryan Fleury 8602e5b23e first pass at thread-locals view 2024-01-31 12:24:57 -08:00
Ryan Fleury c8010b7542 first pass at globals view 2024-01-31 12:17:43 -08:00
Ryan Fleury edb204bc5f eliminate old expand-key-based eval history - ctrl process memory cache offers much better comprehensive replacement. also eliminate per-row and per-block eval views, since we've collapsed all eval views to one per list-of-watch-trees 2024-01-31 11:12:59 -08:00
Ryan Fleury 2bf8179fee eliminate old registers/locals view states 2024-01-31 10:49:47 -08:00
Ryan Fleury 4e9cf2ef89 eliminate old locals view path; dont constantly mutate root expressions, simply query locals & build blocks 2024-01-31 10:48:49 -08:00
Ryan Fleury 14db7dbab4 stub out globals, thread-locals, types views; eliminate unnecssary uniquifier u64 in expand tree hash keys - simplify eval watch views to using a single eval view for the entire view, rather than allocating one per root expression. expand keys are now simply comprised of parent hash * child num 2024-01-31 10:39:18 -08:00
Ryan Fleury 8aac3f7bda escape textual string data before visualizing it in single-line eval visualization 2024-01-31 09:22:47 -08:00
Ryan Fleury 385014adcb raddbg nil tables, autofill empty tables with 1-sized nils; use element-from-idx wrapper to bounds-check and nilify all out-of-bounds raddbg table accesses 2024-01-31 08:43:33 -08:00
Ryan Fleury a6f42502ec symbol lister -> show procedure # in debug info, source location, name in tooltip; busyloop to wait to commit new fuzzy search results if scope touches active; sort fuzzy match results 2024-01-31 07:22:07 -08:00
Ryan Fleury 94d2be1683 some hover eval adjustments 2024-01-31 06:29:25 -08:00
Ryan Fleury 09f2b83603 fix function name breakpoint serialization 2024-01-31 06:20:49 -08:00
Ryan Fleury 00594a841a notes 2024-01-30 14:44:11 -08:00
Ryan Fleury 2731bdac59 extend fuzzy search cache nodes to having 3 buckets - 3rd bucket can be used to abort working copy, and speed an updated query along 2024-01-30 14:19:11 -08:00
Ryan Fleury 6e456424b0 handle thread name events correllated with only TID, without corresponding thread entity - correllate upon thread creation as-needed 2024-01-30 13:50:23 -08:00
Ryan Fleury c700264445 use explicit thread name exception thread ID parameter, when not implicit 2024-01-30 13:11:37 -08:00
Ryan Fleury d9f69cdf14 complete first pass of fuzzy matching symbol lister for go-to-name, and setting function breakpoints 2024-01-30 12:58:24 -08:00
Ryan Fleury 4ef814acb5 fix more tab bar stuff; further sketchout of asynchronous dbgi layer fuzzy searching 2024-01-30 09:57:15 -08:00
Ryan Fleury d139c2874c add optional command spec restriction to cmd param slot -> view spec table; eliminate mouse testing when windows are not focused 2024-01-30 09:14:59 -08:00
Ryan Fleury c61ff1910c split ui view clamp rule into separate x/y flags 2024-01-30 08:02:25 -08:00
Ryan Fleury c9b22acd5a sketch out symbol lister view; float fuzzy matching code into base string layer; bugfix unnecessary ui layer view clamping 2024-01-30 07:59:24 -08:00
Ryan Fleury 38af1a5cab fix bottom tab clipping 2024-01-30 06:52:03 -08:00
Ryan Fleury fe5f38c306 only retry findthread given missing debug info or RIP if ctrl thread is stopped 2024-01-30 06:33:16 -08:00
Ryan Fleury f130f23b3f include jmc line number hacks in line step-over and step-into trap-net 2024-01-30 06:18:02 -08:00
Ryan Fleury aa31afcd24 bump patch version, mule_main -> common link flags 2024-01-29 17:39:20 -08:00
Ryan Fleury 49f7fa9fa3 notes; load user/profile -> open user/profile 2024-01-29 17:31:47 -08:00
Ryan Fleury 9b8c0e32b5 hover eval change visualization 2024-01-29 17:21:25 -08:00
Ryan Fleury 2518eaf57c pass over line info colors, enable source-hover-line-info-viz, a few other visual improvements/tweaks 2024-01-29 16:54:31 -08:00
Ryan Fleury d2bdf512cf in the case of unspecified colors in cfg, default fill them from the preset theme with the most similar background; this will mean that even with totally custom themes, as new color codes are added to the frontend, people will get sensible defaults. if they are just using a preset, then they will get the default new values by default 2024-01-29 16:24:41 -08:00
Ryan Fleury 0ce5239404 prefer serializing theme presets, if applicable 2024-01-29 16:13:08 -08:00
Ryan Fleury 83e8bb8ddd actually still need corner sdf sample with sufficient softness as well 2024-01-29 15:58:15 -08:00
Ryan Fleury afe105da31 eliminate further useless sdf sampling in shaders; eliminate useless borders in ui, eliminating more overdraw; eliminate tab bar clipping issue 2024-01-29 15:52:08 -08:00
Ryan Fleury f6e7db7c3a clean up ui box hierarchy rendering path, to eliminate duplicate node visits, causing a lot of extra dumb overdraw etc. 2024-01-29 15:30:59 -08:00
Ryan Fleury d1fde3c908 fix busted synchronization in non-file-backed txti buffer edits; fix some snapping issues in Output view 2024-01-29 13:57:24 -08:00
Ryan Fleury baca24c037 fix leftover event consumption tautological rule; fix a few small visual issues 2024-01-29 12:53:09 -08:00
Ryan Fleury 57fb21adf7 always allocate byte dirty/unreadable flags in ctrl process memory cache lookup, rather than trusting caller to check 2024-01-29 11:56:34 -08:00
Ryan Fleury 3fd9014c20 feed user-specified strings in cfg serialization/deserialization through escaping/unescaping path -- escape all double-quotes before serialization, de-escape when deserializing 2024-01-29 11:51:12 -08:00
Ryan Fleury 1ade5e44fa do not strip quotations from command line arguments when launching debuggee processes, as otherwise quoted arguments with spaces will be broken apart in inconsistent & unintended ways; fix utf16 decoding with certain ranges of codepoints 2024-01-29 11:28:58 -08:00
Ryan Fleury 28e258b5dc dont assume valid slice from process memory cache grab 2024-01-27 10:46:41 -08:00
Ryan Fleury 967936cef6 pass over rules in picking step-into entry point. right now we don't exactly have a trivial way of checking if an entry point truly was defined by a user. but if line info exists, and the file seems local, and there is a procedure name for an EXE's built-in entry point address, then we can at least guarantee that there is source for the entry point, and thus can serve as an acceptable entry point. this currently does not take into account cases where the OBJ path is not local, but the user overrides the file paths to have source. if the entry point is determined to be non-user-defined, then everything falls back to the usual paths - try WinMain, WinMainCRTStartup, etc., and then override with explicit custom entry points if needed. not great, currently, w.r.t. detecting if the entry point is in user code. maybe can check more info in the unit later... 2024-01-26 20:37:36 -08:00
Ryan Fleury 04b5b362bc fix deadlock in launch_and_init - don't hold dbgi scopes open too aggressively, as we may need to eliminate dbgi which they refer to. 2024-01-26 19:04:30 -08:00
Ryan Fleury f047a0beac slight logo tweaks 2024-01-26 17:37:15 -08:00
Ryan Fleury 7355389e19 ohhhh my godd pt 2 2024-01-26 14:25:46 -08:00
Ryan Fleury 5f8ec62b4c ohhhh myyy gooood 2024-01-26 14:23:54 -08:00
Ryan Fleury 207e46c8e8 prefer exe header's default entry point if it doesn't match expected defaults 2024-01-26 13:59:17 -08:00
Ryan Fleury b76a8b9854 oops - do not ring_write in reader path... also fix silly shader thing 2024-01-26 13:51:57 -08:00
Ryan Fleury 6b7588b4b3 oops;git status 2024-01-26 13:51:33 -08:00
Ryan Fleury 455dac958c first pass at asynchronous file streaming -> hash store layer; fix non-windowed memory access in watch window when doing change visualization, causing major performance regression with large arrays; fix some extra jank with truncated-string-hover & help labels 2024-01-26 11:47:25 -08:00
Ryan Fleury 0974337450 oops, fix function pointer display 2024-01-26 09:50:03 -08:00
Ryan Fleury fea74aedd8 visualize global variable symbol pointers after addresses only on void*s (keep function symbol visualization for function pointer types); otherwise there is real content to visualize 2024-01-26 09:24:35 -08:00
Ryan Fleury 89af8124c7 ui truncated string hovering -> display full string as a tooltip 2024-01-26 09:04:29 -08:00
Ryan Fleury 33f5d4f5b1 default animation rate tweaks 2024-01-26 07:59:04 -08:00
Ryan Fleury 88a218e36e visual jank-fix/polish pass 2024-01-26 07:43:40 -08:00
Ryan Fleury f69176ee4e dbgi layer: treat <header-sized raddbg files as out-of-date 2024-01-26 06:14:02 -08:00
Ryan Fleury 8c0708d2ab remove unnecessary idx run iterator assertion in converter; 'twas asserting that no nodes remained in the bake phase when reaching the end of the idx run section, but this does not hold in all cases (e.g. in the case where there is an empty idx run added last) 2024-01-26 06:08:12 -08:00
Ryan Fleury 21deaace66 fix focus visualization seam given new shaders 2024-01-25 14:20:11 -08:00
Ryan Fleury 3aa602eca7 fix satval picker rendering, with new shader performance improvements 2024-01-25 14:15:24 -08:00