Commit Graph
174 Commits
Author SHA1 Message Date
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 3715021e0e do not assume nonzero namespace table slots 2026-06-02 12:10:55 -07:00
Nikita Smith 568a77b73c fix up scratch conflicts 2026-06-02 12:10:50 -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 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
Nikita Smith 48f2a931ce clang build fix 2026-04-22 09:30:45 -07:00
Ryan Fleury 6f2b8540eb store partially-qualified names in generated RDIs; adjust debugger to do fully-qualified lookups when appropriate 2026-04-21 19:36:38 -07:00
Ryan Fleury fda0a9751b equip namespace records with container info 2026-04-20 15:14:01 -07:00
Ryan Fleury 581c102bfd sort deduplicated namespace map before producing namespaces 2026-04-20 14:43:03 -07:00
Ryan Fleury 5fb1ef4df9 fix global vmap baking determinism - eliminate dupes 2026-04-20 14:15:38 -07:00
Ryan Fleury 16ea060382 fix source of vmap baking determinism issue, + fix use-after-free from cross-lane scratch usage 2026-04-20 14:06:34 -07:00
Ryan Fleury e8e9ad204a further pdb namespaces progress; fix compile-only output for /o MSVC deprecation 2026-04-20 13:53:50 -07:00
Ryan Fleury 03d1575c85 non-scope, non-type namespace gathering / gathering from pdb & baking & dumping 2026-04-20 09:57:34 -07:00
Ryan Fleury 881e19c842 get debugger onto new location info & symbol format 2026-04-20 09:57:33 -07:00
Ryan Fleury 7383cdc5ae fix dumper for new symbols/locations format; produce dummy global unit for global stream pdb info - avoid stomping on 0 unit; fix stomping of location info, from missing lane sync 2026-04-20 09:57:32 -07:00
Ryan Fleury bec7e630ba fix duplicate nil local, equip locals with their scopes as symbol containers 2026-04-20 09:57:32 -07:00
Ryan Fleury 2218649801 fix busted section codes 2026-04-20 09:57:31 -07:00
Ryan Fleury b1e6948576 rdi: extend per-unit info with symbol ranges; build into baker 2026-04-20 09:57:31 -07:00
Ryan Fleury 57e4b69e64 adjust rdi make to keep per-unit info organization - flatten / join in baker, to ensure unit-sorted order 2026-04-20 09:57:31 -07:00
Ryan Fleury abb0199936 checkpoint on new local baking 2026-04-20 09:57:31 -07:00
Ryan Fleury cff7a786b3 fold voffs/toffs/constants into location case list, plug into converters 2026-04-20 09:57:30 -07:00
Ryan Fleury 4ea7f86d92 checkpoint on new simplified location info baking. plug in constant data baking, bytecode baking 2026-04-20 09:57:30 -07:00
Ryan Fleury 911e8c135e new location info baking layout computation - symbol-inlined locations in most cases, + indirected to set elements / bytecode / constant data as needed 2026-04-20 09:57:30 -07:00
Ryan Fleury eff693244b sketch out first part of new unified symbol table baking pass, sketch out new simplified sections 2026-04-20 09:57:29 -07:00
Ryan Fleury 8513ef8a4f pdb -> rdi conversion: be robust to zero itypes in function type parameter lists. was causing, in some cases, local variables to be incorrectly interpreted as parameters, because there was a (nonexistent) parameter to the function recorded in the type info. 2026-04-15 12:28:42 -07:00
Ryan Fleury 5badc7f325 sketch out unified RDI_Variable to replace RDI_GlobalVariable, RDI_ThreadVariable, RDI_Local, and RDI_Constant, & plug into new RDI structured namespaces 2026-03-09 15:15:48 -07:00
Ryan Fleury 408b3af27c rdi namespace baking; cv parsing rec iterator, deduplicate oob-safe cv record iterating 2026-03-09 14:36:05 -07:00
Ryan Fleury 8db4a09941 eliminate global rdim_shared; just use scratch data 2026-03-09 11:56:43 -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
Ryan Fleury 2af3990971 do not rely on lane 0 scratch ptrs for results in p2r - prone to races 2026-03-02 12:17:03 -08:00
Nikita Smith 2fbe45cd47 sync before scratch_end to prevent race in the result fill 2026-02-26 16:41:36 -08:00
Nikita Smith a2336b9991 ASAN false-positives when threads access foreign stack addresses 2026-02-26 16:22:36 -08:00
Nikita Smith d1b055c62f Ignore S_REGREL32 during conversion of optimized procedures.
In optimized builds, MSVC emits parameters as both S_LOCAL and S_REGREL32.
Most likely because their debugger relies on S_REGREL32 to format
parameters in the call stack window.
2026-01-20 14:47:03 -08:00
Nikita Smith a51d3fb752 fix case where return local without a type was converted to a parameter 2026-01-20 14:47:01 -08:00
Nikita Smith 8005c31276 remove x86 register code 2025-12-05 16:39:02 -08:00
Ryan Fleury f396b2eaa3 start dwarf -> rdi cleanup; eliminate some assertions-as-validation, remove incorrect assumption that line info addresses are vaddrs (they seem to be voffs) 2025-11-10 15:06:52 -08:00
Ryan Fleury b1a91b8247 adjust expiration timeouts for searches; fix unnecessary lowercasing when generating paths from pdbs 2025-10-23 16:41:08 -07: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 b371bff6f2 do not skip basic itypes when building type building dependency chains! 2025-10-20 14:52:10 -07:00
Ryan Fleury d9d321c074 mask off name map builds 2025-10-15 15:34:08 -07:00
Ryan Fleury d6a7c8bd00 adjust chunk sizes for per-sym-stream symbol chunk lists 2025-10-15 15:21:42 -07:00
Ryan Fleury 9377efbe13 eliminate rest of p2r_shared usage, just use lane syncs 2025-10-15 14:21:32 -07:00
Ryan Fleury d347e2473b eliminate most reliance on p2r_shared for shared data - isolate scratch allocations, pull into scratch arenas, pop when possible 2025-10-15 14:07:42 -07:00
Ryan Fleury 0d06b7d2d2 regrel32: interpret rbp-relative offsets as potential parameters as well (this only shows up with /ZI - usually everything is rsp-relative) 2025-10-14 10:13:44 -07:00
Ryan Fleury c1e32b93a7 switch from variable size checksum data sections to just making well-defined fixed size ones for all of the concrete cases 2025-10-02 15:43:01 -07:00
Ryan Fleury 56b5792546 rdi checksum kinds, rdim checksums, pull parsed checksum kinds/values from cv, fill out rdim checksums (still haven't put into rdi itself yet) 2025-10-02 13:40:45 -07:00
Ryan Fleury fa0b2440ec subset flag for constants conversion; fix empty-tpi-hash case 2025-09-24 12:42:04 -07:00
Ryan Fleury 2ce581fa19 more subset flag respecting 2025-09-22 17:39:26 -07:00
Ryan Fleury 5c1cf77fda respect subset flags in pdb -> rdi converter 2025-09-22 17:32:05 -07:00
Ryan Fleury 80b65bc0fb fix treatment of unitless pdbs 2025-09-08 16:06:45 -07:00