Commit Graph
81 Commits
Author SHA1 Message Date
Ryan Fleury 66bca76edd delete non-codeview-backed pdb conversion path, switch over to codeview conversion totally 2026-06-18 08:59:51 -07:00
Ryan Fleury a441a5eef3 plug in codeview-conversion-backed pdb converison 2026-06-18 08:54:41 -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 6a2e2eb798 d2r2 -> d2r 2026-06-02 12:11:16 -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 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
Nikita SmithandRyan Fleury 31662822db rebase 2026-06-02 12:10:36 -07:00
Nikita SmithandRyan Fleury 15bf343168 gate for dwarf converter 2026-06-02 12:10:30 -07:00
Nikita SmithandRyan Fleury bcf248682c guard against relative path nodes 2026-06-02 12:10:17 -07:00
Nikita SmithandRyan Fleury 1b868928ea infer path style from top node 2026-06-02 12:10:09 -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 a0ace3561f eliminate d2r usage (1) from radbin 2026-05-12 19:58:15 -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 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
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 0b26b1c83e radbin: only dump eh frame data if found 2026-05-01 08:49:16 -07:00
Ryan Fleury 0e2b37ba32 dwarf: do not crash on unsupported codes; text: do not crash on arena releasing w/ zero hash (#766, #771?, #761) 2026-04-30 17:51:11 -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 f5ec462438 d2r2: .debug_aranges parsing / unit conversion; .debug_ranges parsing 2026-04-28 08:57:59 -07:00
Ryan Fleury f1a9fc5e3a turn off new dwarf converter outputs temporarily 2026-04-27 18:14:29 -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 2623141fd4 checkpoint on multi-lane / simplified dwarf parsing/conversion; fix incorrect assumption of relative in radbin 2026-04-23 14:25:50 -07:00
Ryan Fleury 6f624c10ad fix dwarf conversion to account for new rdi changes 2026-04-23 12:30:45 -07:00
Ryan Fleury 7a59548d5b remove 'Symbols' from section titles, now that old sections are gone 2026-04-20 09:57:33 -07:00
Ryan Fleury 881e19c842 get debugger onto new location info & symbol format 2026-04-20 09:57:33 -07:00
Ryan Fleury a190051d61 checkpoint on new symbol serialization 2026-04-20 09:57:30 -07:00
Nikita Smith 85bbfa755a port pdb -> rdi determinism test 2026-04-09 13:41:04 -07:00
Ryan Fleury 4312ee14fd first pass at (rdi -> loose rdim) path, used in (rdi * ... * rdi) -> rdi joining in radbin; plug in regular conversion path before voff -> line & breakpad paths in radbin, such that PDBs, DWARFs, RDIs, etc. can be used as input; fix up voff -> line path to plug into regular output systems; remove String8 union thing - three reasons: (a) it was only ever introduced for convenience in Linux layers, so let's just keep zero-terminated Linux nonsense in Linux land, (b) it was just alternate syntax for a cast, so let's just cast, (c) it was misleading - 'cstr' implies null-termination, which String8 of course doesn't guarantee. this led to some misuses, where .cstr was trusted to be zero-terminated, when that was not necessarily true (semaphore opening). 2026-03-03 16:24:54 -08:00
Nikita Smith 2fc4a3472b finalize DWARF line table conversion test 2026-02-24 19:05:22 -08:00
Nikita Smith c7f7e15434 WIP DWARF line table conversion tester 2026-02-24 18:05:39 -08:00
Nikita Smith cc00fe7825 minor fixes and improvements for DWARF dumper 2026-02-22 20:18:57 -08:00
Nikita Smith aaa5b0cb59 pass over DWARF dumper 2026-02-11 00:00:43 -08:00
Nikita Smith 3bc9bacf6f update line table dumper; pipe down verbose switch to the DWARF dumper 2026-02-05 17:43:19 -08:00
Nikita Smith 7cafde3376 revert DWARF changes to commit bda3a71379 2025-11-13 10:53:29 -08:00
Ryan Fleury b8a8ec31c7 checkpoint on simplified / stripped down dwarf -> rdi, and dwarf parsing helpers 2025-11-11 15:10:16 -08:00
Ryan Fleury 17ec73d752 dwarf cleanup checkpoint 2025-11-10 17:41:01 -08:00
Nikita SmithandRyan Fleury b596a6ed8a dumper for SHT_NOTE 2025-11-07 14:39:46 -08:00
Nikita SmithandRyan Fleury 942c354bd9 fix eh_frame dumping 2025-11-07 14:39:45 -08:00
Nikita SmithandRyan Fleury dad92610de dumper for .eh_frame_hdr and .eh_frame 2025-11-07 14:39:45 -08:00
Ryan Fleury c318c10486 pipe through guids in rdi conversion; sketch out 'query' meta cfg evaluation members, which are not stored but computed, but are not sets; plug in debug info guid evaluation that way 2025-10-23 12:10:23 -07:00
Ryan Fleury 25beda50ca mask off more work based on subset flags from baker 2025-10-15 15:44:04 -07:00
Ryan Fleury b688c69f13 radbin: compress sections wide, deduplicate work 2025-10-13 13:07:37 -07:00
Ryan Fleury ec39cefc9e correctly decompress rdis in radbin dumping path; do not compress zero-sized sections in rdi make 2025-10-13 12:47:46 -07:00
Ryan Fleury fadef8a886 log source of dwarf info more specifically 2025-10-07 11:03:18 -07:00
Ryan Fleury fe8608ee1c more verbose logging in radbin 2025-10-07 10:37:15 -07:00
Ryan Fleury d20cce536a rdim bake parameter joining, source rdi bake parameters from *all* inputs, and not mutually-exclusive dwarf vs. pdb cases 2025-10-07 10:20:19 -07:00
Ryan Fleury 7707ba1d60 dwarf debug info option in builds, fix heuristic to try to load debug info from exe itself 2025-10-01 15:36:36 -07:00
Nikita Smith 07d77a0e79 report unsuccessful writes 2025-09-26 16:28:46 -07:00