Commit Graph
130 Commits
Author SHA1 Message Date
Ryan Fleury 1901e67f39 use synchronous reads for call stack computation, but extend artifact cache with the ability to say that a non-retryable failure occurred, so that we can fall back to stale call stacks 2026-06-23 20:00:57 -06:00
Ryan Fleury 3d6851c57a rdi_from_Dwarf: count dependency counts correctly when using cached type content hashes 2026-06-23 16:07:53 -07:00
Ryan Fleury 98b7b5859c rdi_from_dwarf: stub out pointers for now, cache as we go, merge type dependency count calculation with hash computation 2026-06-23 12:32:11 -07:00
Ryan Fleury 28009ec01e rdi_from_dwarf type dedup hashing experiments checkpoint 2026-06-23 10:05:28 -07:00
Ryan Fleury fef78609d8 turn off d2r tests for now while new deduper is in progress; better tag skipping in dedup hashing 2026-06-22 14:25:25 -07:00
Ryan Fleury 28d037a924 checkpoint on faster rdi_from_dwarf type/namespace deduping 2026-06-22 13:31:08 -07:00
Ryan Fleury 73e9f3c9da rdi_from_dwarf: determinism / regression tests 2026-06-21 20:56:46 -07:00
Ryan Fleury ed6afcb180 checkpoint on rdi_from_dwarf pass, start addressing O(N lg N) hashing problem for type content, use sibling tags, etc.; remove test inputs from data/, just rely on local folder (filled via data server) 2026-06-21 15:53:38 -07:00
Ryan Fleury d3d35e40d7 rdi_from_dwarf: use sibling tags to advance in hash path too - set up for deduplicating hash work 2026-06-19 20:53:01 -07:00
Ryan Fleury 15601d48d4 rdi_from_dwarf: use sibling tag attributes to gather root-level tag offsets when present - 15x speedup in the gather on webkit DWARFs... 2026-06-19 20:11:50 -07:00
Ryan Fleury 9f82a6fe91 fix flipped interpretation of scope address ranges in dwarf - address class implies opl, not size 2026-06-19 12:41:17 -07:00
Ryan Fleury 3aad389174 notes 2026-06-17 19:30:08 -07:00
Ryan Fleury cc75260946 checkpoint on eval2; type graph operations, parsing, etc. 2026-06-17 17:38:09 -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 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 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
Nikita Smith ec3da44568 minor fix 2026-06-02 12:10:24 -07:00
Nikita Smith bcf248682c guard against relative path nodes 2026-06-02 12:10:17 -07:00
Nikita Smith 61f7d0c43a minor fixes 2026-06-02 12:10:06 -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 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 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
Nikita Smith 24c858171f fix complex and char conversion + note 2026-05-07 21:49:15 -07:00
Ryan Fleury 44c6b6e4d5 do not duplicate function records for decls 2026-05-05 12:22:20 -07:00
Ryan Fleury d9f7385f81 d2r2: fix file sequence map build to use correct source files 2026-05-05 12:13:07 -07:00
Ryan Fleury 1301165aeb d2r2: disable llvm-dwarfdump-style line table logging 2026-05-05 10:50:47 -07:00
Ryan Fleury 384cf11eed d2r2: fix line table register reset conditions in line table conversion 2026-05-05 10:49:33 -07:00
Ryan Fleury fb04768002 d2r2: hook up scope containers to contained types / namespaces; fix address table parsing 2026-05-05 09:42:55 -07:00
Ryan Fleury aee299efe7 d2r2: deduper fixes/simplification, first half of structured namespace support 2026-05-04 15:41:23 -07:00
Ryan Fleury 8f65f466f5 d2r2: expand tag deduplication to both namespaces and types; gather/deduplicate/convert namespaces 2026-05-04 13:14:13 -07:00
Ryan Fleury 7157e813a0 d2r2: fix line table build - correct program data size, correct special opcode application 2026-05-03 17:55:53 -07:00
Ryan Fleury f2d80da2de d2r2: remove markup 2026-05-03 11:25:56 -07:00
Ryan Fleury e48c23db20 d2r2: don't descend children for childless subprograms! 2026-05-03 11:24:38 -07:00
Ryan Fleury 4f3d9c96b8 d2r2: when deduplicating types, ensure deterministic (hash -> .debug_info off) mapping, by minimizing the .debug_info off found for a particular type hash - in theory, this step should not be necessary, but there is a mistake / broken part of this theory, which was leading to non-deterministic type graphs in a very small # of cases, due to the same hash mapping to different .debug_info offsets across runs. in theory, the hash itself should take care of this, but there is likely something important missing. in either case, minimizing the .debug_info offset is very cheap, and guarantees we parse from a deterministic place no matter what the run looks like. 2026-05-02 20:25:33 -07:00
Ryan Fleury f9eb25dbcb d2r2: do unique type info gathering on a sub-unit granularity, so we can subdivide a unit across all lanes; sort unique type tag slots for determinism 2026-05-01 14:12:35 -07:00
Ryan Fleury 0b5e827f6c rd: prioritize fastpath for non-unwound register reads; d2r2: prepass to find all top-level tag trees, subdivide unit work on a root-level tag tree basis 2026-05-01 12:34:35 -07:00
Ryan Fleury 13fb24f253 fix incorrect function parameter type parsing (was causing quadratic parses of .debug_info, oops) 2026-05-01 08:42:48 -07:00
Ryan Fleury 0054935252 d2r2: fix scope voff miscount; pattern match trivial value-register locations -> simple kind; fix pre-dwarf5 file table parsing 2026-04-30 18:09:30 -07:00
Ryan Fleury c83c1f3cfd udt conversion 2026-04-29 16:27:58 -07:00
Ryan Fleury 230b004742 d2r2: function type info; fix reg+off location info for signed offsets, function type deduplicating / construction / referencing, etc. 2026-04-29 15:50:31 -07:00
Ryan Fleury 9a923e9bf9 d2r2: .debug_loclists parsing, DWARF expression -> RDI location info; first pass at baking frame base into var locations to match simpler PDB behavior; fixes to high-pc address evaluation (based on form kind) 2026-04-29 12:40:43 -07:00
Ryan Fleury 242f4e9cbd d2r2: dwarf 5 .debug_rnglists, .debug_addr parsing / usage 2026-04-28 09:37:31 -07:00
Ryan Fleury f5ec462438 d2r2: .debug_aranges parsing / unit conversion; .debug_ranges parsing 2026-04-28 08:57:59 -07:00
Ryan Fleury c6b733de20 d2r2: finished first pass of type conversion; sketched out structure for symbol/unit conversion; plugged everything in 2026-04-27 16:07:07 -07:00
Ryan Fleury ffa41c0a98 d2r2: adjustments to type deduper; sketch out topologically-sorted type building path 2026-04-27 12:02:27 -07:00
Ryan Fleury be1095eccf d2r2: type dedup content hashing cycle detection / handling; type dependency chain build 2026-04-25 09:40:49 -07:00
Ryan Fleury 9768321d08 fix build 2026-04-24 20:45:18 -07:00