Commit Graph
165 Commits
Author SHA1 Message Date
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
Ryan Fleury 40d6ce2f59 do not return zeroes for top-level structures in pdb parser; ensure you have a top-level readable pointer, always 2025-09-06 09:53:04 -07:00
Ryan Fleury 23a68faadd rdim2 -> rdim; p2r2 -> p2r 2025-09-05 17:06:19 -07:00
Ryan Fleury 51ef166e60 eliminate all old conversion/baking code 2025-09-05 17:02:56 -07:00
Ryan Fleury 78530fb10d merge p2r2 into original p2r, delete old conversion path; replace pdb -> breakpad converter & dependency on old converter 2025-09-05 16:35:35 -07:00
Ryan Fleury cd77ddb1b7 pdb converter - new location info building for all cases 2025-09-05 15:19:30 -07:00
Ryan Fleury 6f9b22b258 plug in new location building code to pdb conversion 2025-09-05 15:19:30 -07:00
Ryan Fleury cc9f45299a eliminate separate chunk list for location cases 2025-09-05 15:19:30 -07:00
Ryan Fleury fa05bbf2a5 udt member/enum-val layout & nested baking; use rio to pre-fault all commits 2025-09-05 15:19:30 -07:00
Ryan Fleury a84142ed77 re-nest enum vals & members into udts; we want to keep the building API flexible with order of member building, and we can assume ~statistically-uniform distribution across all udts, so it makes more sense to just parallelize on udts, and pay the small cost of an upfront per-lane layout. 2025-09-05 15:19:30 -07:00