Commit Graph
100 Commits
Author SHA1 Message Date
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
Ryan Fleury 9eecffad78 fix mouse-hover-in-source-evaluation (off -> range) rules, to correctly enclose more expressions 2026-05-13 11:55:52 -07:00
Ryan Fleury a1778421c9 eval extended opcode for setting base offset - used for correct cross-module evaluations, fixes go-to-definition when thread is not in module of resolved identifier's symbol 2026-05-13 11:23:48 -07:00
Ryan Fleury 0563cd3b80 fix incorrect lifetime of calculated implicit user/project arguments 2026-05-13 10:43:43 -07:00
Ryan Fleury 1e0bcf0504 treat relative implicit project args correctly 2026-05-13 10:30:54 -07:00
Ryan Fleury 2231228ffb store loaded debug infos as user config, but project-tagged; eliminate 'recent files' from project file (they are almost entirely duplicative of debug info source files); adjust 'last_user' remembering semantics - do not automatically change last_user when setting user explicitly from command line 2026-05-13 10:18:06 -07:00
Ryan Fleury 1774a76cdb scope ending annotations 2026-05-13 08:58:46 -07:00
Ryan Fleury 264abe57aa allow missing debug info in case of 'step out' - we still want to support traditional behavior especially in e.g. disassembly and so on 2026-05-13 08:40:14 -07:00
Ryan Fleury b198f0b421 just move metagen onto regular base layer - in theory this causes cycles (metagen w/ bug -> generates busted base layer code -> can't build metagen!) but we do not currently generate anything in base, and we also can just revert in that case. 2026-05-12 20:02:35 -07:00
Ryan Fleury a0ace3561f eliminate d2r usage (1) from radbin 2026-05-12 19:58:15 -07:00
Ryan Fleury fa5af4fa9f notes 2026-05-12 19:57:01 -07:00
Ryan Fleury b4f15d3111 adjust project/user saving/loading rules to be less idiosyncratic with other applications. user settings persist, to keep the user from needing to specify things like windows/colors/bindings every time, but projects must always be manually specified, e.g. like usual files in other programs. you can do this either via the ui, or via command line still. also, new user/project no longer require a path - they just clear the existing path, then to set the path you just explicitly save. this makes things much more natural & familiar. 2026-05-12 19:34:42 -07:00
Ryan Fleury dcc78314ab fix dbg_info loader treatment of nil keys, avoid bad usage of blank '.rdi' files; os_lnx_* -> lnx_* 2026-05-12 14:42:29 -07:00
Ryan Fleury 50a68b9d8c adjust internal definition of sync barrier type to match windows 2026-05-12 13:52:25 -07:00
Ryan Fleury d4623a7ddf slow & highly contentious implementation of barriers using more basic sync primitives; fall back if sync barriers not present in win32 version 2026-05-12 13:48:57 -07:00
Ryan Fleury 641a7c8b30 on new debug session: close all loaded debug infos, assume none need to stick around 2026-05-12 09:38:06 -07:00
Ryan Fleury 15a2d5658f fix auto-thread-selection rules 2026-05-11 20:04:36 -07:00
Ryan Fleury d45090a8cc adjust kerning to be rounded, rather than floor'd; adjust step-out desc 2026-05-11 19:53:54 -07:00
Ryan Fleury 9eaff99bbb fix build 2026-05-11 19:44:26 -07:00
Ryan Fleury cbbacf0b5f sketch out extra disasm instruction outputs for determining read/write locations from instructions (autos) 2026-05-11 14:53:05 -07:00
Ryan Fleury d1536953b0 p2r: eliminate spurious duplicate address vmap entries; upgrade step-out with block stepping functionality 2026-05-11 14:21:43 -07:00
Ryan Fleury cc099f55aa do not call destroy on caches without a destroy hook :( 2026-05-11 13:30:59 -07:00
Ryan Fleury de35a86505 fix artifact cache replaced-value deletion - this CAN NOT run if the new value == the old value 2026-05-11 13:29:29 -07:00
Ryan Fleury 52da228efe artifact_cache: fix leak of old-generation artifacts, when those artifacts are replaced by newer generation computations. artifacts can opaquely hold things like arena pointers, and so when we replace them in the cache, we need to respect the lookup api's provision of create/destroy hooks for the cache, such that the artifacts can be released correctly (using the destroy hook) before being replaced. this is separate from regular eviction. 2026-05-11 11:49:15 -07:00
Ryan Fleury 6a95da35e0 opengl: more coverage/convergence w/ d3d11 2026-05-09 20:25:14 -07:00
Ryan Fleury 0cfc113272 opengl: apply transforms to rendering 2026-05-09 13:30:56 -07:00
Ryan Fleury a16716eff7 d2r2: fix missing function types on functions returning void 2026-05-09 12:38:08 -07:00
Ryan Fleury d59d6a21f0 d2r2: do not duplicate line records, were being generated by columnar changes, but these are not currently supported by the debugger 2026-05-09 12:18:05 -07:00
Ryan Fleury 2f6d0f9aaa os -> wm; *_w32_ -> w32_*_, *_lnx_ -> lnx_*_ 2026-05-08 21:17:21 -07:00
Ryan Fleury 9a7782de47 re-slice linux/win32 backends, top-level folder is backend (demon/win32 -> win32/demon, etc.); os_gfx -> window_manager; fix linux / opengl builds for new apis/types 2026-05-08 15:21:22 -07:00
Ryan Fleury aea4a4ff9d eliminate os_core, move into base; eliminate regs, move into arch abstraction layer, define x64 regs in x64 layer; move win32 backend for os core (now base) functionality to top-level win32 layer 2026-05-08 15:21:21 -07:00