Commit Graph
100 Commits
Author SHA1 Message Date
Ryan Fleury 40d9e5839f fix torture; adjust raddbg test exemplar dumping to avoid dumping info for anything other than the main module, so that we don't get non-deterministic dumps (for e.g. system PDBs) 2026-06-10 07:57:18 -07:00
Ryan Fleury 9af4c3d614 W over A win32 window functions; wakeup on WM_CLOSE (manual merge of
cbf3fd5587)
2026-06-10 04:43:01 -07:00
Ryan Fleury 19cb0331b0 fix implicit expr parameterization in add-breakpoint margin click path 2026-06-10 04:29:32 -07:00
Ryan Fleury 5ddad36380 zero undefined registers in eh unwind 2026-06-09 16:18:47 -07:00
Ryan Fleury ffb79a67ef be robust to missing symbol server support 2026-06-09 16:07:16 -07:00
Ryan Fleury 8a098c5d45 adjust rules for text view loading; handle non-evaluations / empty evaluations correctly 2026-06-09 16:02:33 -07:00
Ryan Fleury f57137288b check if rdi path is writable before deciding to convert to it; if it isn't writable, then redirect to a rdi cache directory 2026-06-09 16:02:33 -07:00
Ryan Fleury 2faa9211eb cleanup 2026-06-09 16:02:32 -07:00
Ryan Fleury c05846aef1 fix incorrect impl of RDI_EvalOp_Swap 2026-06-09 16:02:30 -07:00
Ryan Fleury e047e84433 do not assume writable module 2026-06-09 15:01:01 -07:00
Ryan Fleury fde13f52d3 fix nil text visualizations; fix auto-load-recent-project 2026-06-09 14:56:34 -07:00
Ryan Fleury 5ae286d67e setting for auto-downloading missing debug info (off by default); command for manually loading module debug info as-needed 2026-06-09 14:01:09 -07:00
Ryan Fleury 0105b06fef fix conflicting lifetimes in http read - batch of retry-response-body-pieces was conflicting with asynchronous reading state! 2026-06-09 13:14:29 -07:00
Ryan Fleury 27e1e36f5c fix incorrect marking of non-stale results by artifact cache lookup; fix view addr parameterizations when a register value is used 2026-06-09 11:24:54 -07:00
Ryan Fleury 0f02c32c89 pull failed-unwind-step register-block-restore out of each impl, just do it on the caller side; pull out module-less read-the-stack-pointer unwind fallback from pe/x64 unwinder, use in module-less unwinds in all cases; call into from pe/x64 unwinder in fallback case 2026-06-09 10:58:16 -07:00
Ryan Fleury ec4fd23e15 fix incorrect commits in new pe/x64 unwinder; fix bad unwind termination conditions 2026-06-09 10:38:08 -07:00
Ryan Fleury 9955c8c1a7 temporarily turn off symbol server stuff - switch off spoof for step-over 2026-06-09 09:27:23 -07:00
Ryan Fleury 132751777f eliminate unnecessary info in debug engine entity abstraction / demon events; adjust symbol server / debug info loading such that the debug info loader is the one who decides to kick off downloads based on presence in cache path; use cache path as key, unpack info for download requests 2026-06-08 21:06:44 -07:00
Ryan Fleury b22f9f2d8b checkpoint on symbol server 2026-06-08 17:32:07 -07:00
Ryan Fleury 536ca53d18 rdi_from_pdb: sketch out paths for LF_ALIAS 2026-06-08 11:26:17 -07:00
Ryan Fleury 2d6260fc68 remove dummy test file 2026-06-08 11:13:07 -07:00
Ryan Fleury 5c664261a3 symbol server abstraction layer; http layer; fix to 'prefer_disasm' rule when no disassembly tabs are open; small fixes / cleanup 2026-06-08 11:10:14 -07:00
Ryan Fleury 1ef94cb759 fix find-code-location snap rule when src/disasm occupy same panel & they are found by different rules; conflicting panels must be checked across *all* cases 2026-06-06 15:37:24 -07:00
Ryan Fleury dc613f3a08 correctly handle voff evaluations in generalized watch window completion path (offline evaluation in everything palette case) 2026-06-03 14:43:50 -07:00
Ryan Fleury 09f78fdae4 small parameterization to query watches 2026-06-03 14:28:06 -07:00
Ryan Fleury 015ae9c62c set up for memory right clicks 2026-06-03 12:49:39 -07:00
Ryan Fleury d7b59e4a39 break when value changes 2026-06-03 12:37:28 -07:00
Ryan Fleury 3a04a96e03 eval right-click; start with go-to-memory command 2026-06-03 12:16:42 -07:00
Ryan Fleury 6b88ad1ea3 fix incorrect temp pop 2026-06-03 10:34:01 -07:00
Ryan Fleury 0df1b34580 fix spacing 2026-06-03 10:31:45 -07:00
Ryan Fleury 737ceb1313 tweaks / improvements to watch windows & lister ui - display controls, appearance, remove redundant visual info 2026-06-03 10:28:47 -07:00
Ryan Fleury e7153e8910 auto load project only when project is not specified; fix alt menu weirdness on alt+tab 2026-06-03 09:10:53 -07:00
Ryan Fleury 4d1d362ac1 adjust find-code-location path to absolutify relativized paths based on current thread/module; also respect module-relative / debug-info-relative paths in src -> voff & voff -> src mapping 2026-06-03 09:01:51 -07:00
Ryan Fleury fd1ee1c265 radbin: absolutify relative external-file-paths (debug link, pdb-in-exe), to avoid clashing with working-directory files of the same name 2026-06-02 14:41:43 -07:00
Ryan Fleury e958814b07 use fully-qualified names in eval viz address resolved symbol strings, used in call stack / etc. 2026-06-02 12:16:16 -07:00
Ryan Fleury 5a819f8094 setting for auto-loading of recent projects 2026-06-02 12:11:17 -07:00
Ryan Fleury 1673fa5606 enable lfs on github actions 2026-06-02 12:11:16 -07:00
Ryan Fleury 6a2e2eb798 d2r2 -> d2r 2026-06-02 12:11:16 -07:00
Ryan Fleury 6ed6d3f16d rdi_from_dwarf [1] -> obsolete; promote 2 -> 1 2026-06-02 12:11:15 -07:00
Ryan Fleury b75b9b45cc fix radbin 2026-06-02 12:11:15 -07:00
Ryan Fleury a2700de35d dwarf parse/expr/unwind/dump 2 -> 1; move old stuff to obsolete 2026-06-02 12:11:14 -07:00
Ryan Fleury ef5fc82e9c dead code elimination 2026-06-02 12:11:14 -07:00
Ryan Fleury d73ce364b9 major clean-up pass over unwinding/module-info abstraction, + usage in the debug engine. simplified / cleaned up DWARF helpers for unwind info & expressions. decoupling unwinding / DWARF evaluation from memory read callbacks. light module info now prepared by demon layer - debug engine no longer duplicates per-backend parsing. unwind abstraction layer now does thin abstraction over unwinding backends, debug engine only calls abstraction. clean up demon to have fewer ad-hoc 'queries' on handles, and prefer sending info over debug events when possible / when it fits the usage pattern. move DWARF enum specifications to metacode, generate enums/xlists/tables/etc. decouple raddbg/radbin completely from old parsing helpers. replace portion of DWARF dumping; pull out some new parsing helpers from converter / dumper. 2026-06-02 12:11:13 -07:00
Ryan Fleury 9cc2afc659 eliminate backend-specific module parsing from debug engine ctrl thread; just pass that info back via the demon event 2026-06-02 12:11:10 -07:00
Ryan Fleury d98d6b56d9 check in test input binaries, adjust torture test data path 2026-06-02 12:11:09 -07:00
Ryan Fleury 1c1fef0f97 lfs tracking for exes/pdbs/rdis/elfs 2026-06-02 12:11:08 -07:00
Ryan Fleury 2dee864547 fix fn pointer mismatch on clang builds 2026-06-02 12:11:08 -07:00
Ryan Fleury f72d7bbe61 run -> run_tests 2026-06-02 12:11:07 -07:00
Ryan Fleury c746fadcaa run -> run_tests 2026-06-02 12:11:07 -07:00
Ryan Fleury 4dd22c9e51 re-enable p2r determinism tests 2026-06-02 12:11:06 -07:00
Ryan Fleury d909f187d5 be robust to any line endings in exemplar data 2026-06-02 12:11:06 -07:00
Ryan Fleury 1ea8c48867 raddbg exemplar tests -> use specific hash version, name exemplars by their platform, skip if test data unavailable 2026-06-02 12:11:05 -07:00
Ryan Fleury dc61f20e3b sketch out stepping/eval exemplar testing; step-to-exit first pass 2026-06-02 12:11:04 -07:00
Ryan Fleury a0bf825169 run-to-name, use to 'seed' test binary cases' 2026-06-02 12:11:03 -07:00
Ryan Fleury 8564884d76 raddbg: stepping regression tests 2026-06-02 12:11:02 -07:00
Ryan Fleury 685c408a13 migrate from torture-defined testing markup -> base 2026-06-02 12:11:02 -07:00
Ryan Fleury 4e72553006 promote test-definition concepts from torture to base layer; reorganize tests to be nested in their respective layer; eliminate 't_group', just use containing layer 2026-06-02 12:11:01 -07:00
Ryan Fleury 769bda0ed8 restore torture mdesk tests 2026-06-02 12:10:57 -07:00
Ryan Fleury 96c1ca549c Revert "export line and column numbers from MD"
This reverts commit 29becc3bfa6037a1ba5c5657f891a65a819b0997.
2026-06-02 12:10:56 -07:00
Ryan Fleury 3715021e0e do not assume nonzero namespace table slots 2026-06-02 12:10:55 -07:00
Ryan Fleury c723584bfa send acks always 2026-06-02 12:10:53 -07:00
Ryan Fleury 5f851ad1b0 simplify testing ipc driving stuff in raddbg layer; put in formal eval/line-from-vaddr commands 2026-06-02 12:10:52 -07:00
Ryan Fleury 4bbed83eab only send ack on catch-all path for external driver cmds 2026-06-02 12:10:51 -07:00
Ryan Fleury 4e44a3c271 get default symbol path as part of process info; sketch out windows-style path for local symbol server cache 2026-06-02 12:10:48 -07:00
Ryan Fleury e1782d08cf show line info on visualizing function evaluations 2026-06-02 12:10:48 -07:00
Ryan Fleury 1c29112e9c first pass at per-target output log labels 2026-06-02 12:10:47 -07:00
Ryan Fleury 56ee3bbf7b eval: use resolution qualifiers to express disambiguating debug info, or module, or unit, and use in debug info resolution matching path; automatically prefer selected thread voff's unit 2026-06-02 12:10:43 -07:00
Ryan Fleury a72d284058 more aggressively use scratch & limit temporary allocations in rdi baker 2026-06-02 12:10:43 -07:00
Ryan Fleury 0b5651eecd project files 2026-06-02 12:10:41 -07:00
Ryan Fleury 58e6430955 p2r: more carefully choose symbol chunk sizes - we were spending dramatically more memory than needed in cases where there were many translation units, with very few symbols, because of our overly-aggressive chunk sizes (e.g. chrome.dll.pdb). also, since we just parse the msf by forming contiguous streams, let's just always map input files in radbin by default, so that we don't pay twice for the memory. 2026-05-20 14:02:08 -07:00
Ryan Fleury 1912774377 pass over default theme 2026-05-20 11:37:53 -07:00
Ryan Fleury bc22adc440 bump to 27 2026-05-19 14:42:28 -07:00
Ryan Fleury 95f4ade10d lift wait-for-process-memory-cache-update out of d_process_write, since that path runs on control thread now too as the general 'process handle write' abstraction - just move into the rd_eval_space_write path, since that wait was only for UI benefit anyways 2026-05-19 14:35:29 -07:00
Ryan Fleury 7a5ae846e9 annotate changelog notes with issue numbers 2026-05-19 12:34:37 -07:00
Ryan Fleury 17cdf458d3 on ambiguous debug info matches, inside primary debug info -> try building a fully qualified name from context, and replacing initial debug info match if it hits 2026-05-19 12:08:26 -07:00
Ryan Fleury 161663016f project.raddbg 2026-05-19 11:56:08 -07:00
Ryan Fleury 82f47e3436 changelog notes 2026-05-19 11:55:27 -07:00
Ryan Fleury 3360d97e37 fix eval space creation for nil entities 2026-05-19 11:14:19 -07:00
Ryan Fleury 1a48155116 checkpoint on dump file parsing / cache construction; temporarily turn off crash dump command, since still wip 2026-05-19 09:56:01 -07:00
Ryan Fleury fe4de192e4 linux -> prefix user raddbg data with ., so we get ~/.raddbg normally - on windows keep normal style 2026-05-18 20:18:53 -07:00
Ryan Fleury a75cb2c32d display folder in title fstr generation for file evaluations, but only if not inside a folder context 2026-05-18 20:06:05 -07:00
Ryan Fleury 40885a3f59 fix unmapped address visualization when reading is impossible + stop it from terminating rest of useful visualization 2026-05-18 20:01:15 -07:00
Ryan Fleury 80d68b7f95 dbg_engine: minidump memory64 parsing; rename switch -> better thing for what it is 2026-05-18 19:40:47 -07:00
Ryan Fleury 4840b46b84 dbg_engine: shift thread register reads / process memory reads -> abstraction layer, rather than directly calling into demon; cache crash dump info, like thread info & memory ranges; implement thread reg reads & memory reads for dumps by using this acceleration structure when we have a dump handle, instead of regular demon reads. 2026-05-18 14:51:17 -07:00
Ryan Fleury 463a4f8565 eliminate redundant focus tab automatic commands 2026-05-17 20:24:27 -07:00
Ryan Fleury 6d6cd7033d minidumps: initial gather / events for process/modules/threads 2026-05-16 20:53:46 -07:00
Ryan Fleury fddf353ea0 minidump format types; open crash dump command, stub out opening path in control thread; expand d_handles to support machine id, entity id, *and* 'controller kind', which can be either a dump file or a demon - this properly separates the true process control abstraction (demon) from opening a regular dump file on any machine, which will let us trivially support any kind of dump file on any platform; also fix bad cfg tree state leak 2026-05-16 18:26:23 -07:00
Ryan Fleury c90cbb80aa fix label rendering in cfg title fstr build 2026-05-14 15:00:07 -07:00
Ryan Fleury cb8f2749d9 source/disassembly inline auto expressions 2026-05-14 14:34:17 -07:00
Ryan Fleury a60502d765 sketch out first pass of autos evaluation 2026-05-14 13:50:34 -07:00
Ryan Fleury 54fc7deafa fix incorrect per-unit line table data offset doubly adding base offset of unit - was breaking non-zero-offset line tables 2026-05-14 08:54:38 -07:00
Ryan Fleury 14390c01f7 respect path style in picking file replacements 2026-05-13 18:54:23 -07:00
Ryan Fleury 5977cb400d only do pointer value visualization with valid pointer spaces; otherwise it is just a value 2026-05-13 18:41:43 -07:00
Ryan Fleury ab4a084c9c fix filtered-tab selection adjustments on project load 2026-05-13 16:01:00 -07:00
Ryan Fleury d207398934 display project names in recent project list; fix 0s for address-disabled string viz 2026-05-13 15:50:59 -07:00
Ryan Fleury fbe7b20aee finish addresses-before-content single-line eval visualization path 2026-05-13 15:22:56 -07:00
Ryan Fleury 58caf0d3d5 upgrade eval space reads with staleness/bad/change info, to expand process memory cache reading abilities to all evaluation spaces; unmapped address visualization (both memory view & single line eval) 2026-05-13 14:48:00 -07:00
Ryan Fleury e6d83f7450 visualize unmapped addresses in memory view more correctly (not as 0s) - annotate explicitly with unmapped address annotation 2026-05-13 14:09:21 -07:00
Ryan Fleury 16b1e728ba breakpoints -> project-tagged user config 2026-05-13 13:38:04 -07:00
Ryan Fleury cfbda8bc4d clear last-focused-external-window on new session 2026-05-13 11:57:03 -07:00