Commit Graph
72 Commits
Author SHA1 Message Date
Ryan Fleury e5df25b314 use stderr-based fatal crash reporting, rather than windows gui, with programs built as console interfaces rather than guis 2024-03-25 13:24:00 -07:00
Ryan Fleury 808d26684e fix unchecked zero pointers in bake string map joining task, when zero pointers are legal 2024-03-15 14:16:30 -07:00
Ryan Fleury 22e6352056 raddbgi_breakpad_from_pdb: add a few missing null checks for edge cases 2024-03-13 15:25:05 -07:00
Ryan Fleury 091269b1d8 eliminate synchronous per-thread string map building, just do it as-needed on each thread; 2024-03-04 11:53:12 -08:00
Ryan Fleury 4d6860b3a1 raddbgi_from_pdb/raddbgi_make: kill old synchronous string map code; naming pass 2024-03-04 11:14:54 -08:00
Ryan Fleury 778f4eb08d raddbgi_from_pdb: complete initial parallelization pass over string map building, joining, & sorting 2024-03-04 11:02:48 -08:00
Ryan Fleury 0ad795ba4c eliminate old udt string baking kickoff code 2024-03-01 11:36:03 -08:00
Ryan Fleury ac22e24841 raddbgi_from_pdb: switch string baking to using fixed per-thread maps, rather than per-task maps 2024-03-01 11:21:30 -08:00
Ryan Fleury 2fc0b4eac2 extend task system with thread count, so usage code can easily create per-thread state; pass thread idx into task entry points 2024-03-01 11:08:00 -08:00
Ryan Fleury 1ea3a14a50 shift to slice-granularity of string map gathering, rather than chunk-granularity - gives a bit more flexibility. set up pdb converter type name gathering tasks for slice subdivision. before going forward with this plan it's imperative that we start sparsely allocating these name maps... 2024-02-28 16:48:25 -08:00
Ryan Fleury a38742d80b adjust string map sorting tasks to be wide, but less granular than per-slot; divide up table into chunks 2024-02-28 16:18:11 -08:00
Ryan Fleury e94b530758 new bake string map gathering/merging passes & async usage in converter 2024-02-28 15:51:17 -08:00
Ryan Fleury 70d004e5d3 clean up command line arguments & help in converters 2024-02-26 16:49:57 -08:00
Ryan Fleury 3b7a4f3331 clean up pdb -> raddbgi converter parameters; extend conversion parameterization with optional type/udt disabling; use in breakpad converter 2024-02-26 14:11:26 -08:00
Ryan Fleury 1c2c82cc58 breakpad_from_pdb per-function line info writing 2024-02-26 13:34:33 -08:00
Ryan Fleury 03763e3444 raddbgi_from_pdb/raddbgi_make: split top-level units baking from per-unit baking; do per-unit baking wide 2024-02-26 12:15:18 -08:00
Ryan Fleury 874f40244c eliminate per-executable initialization, just pull that down into the base layer entry point 2024-02-26 10:45:00 -08:00
Ryan Fleury 8eb0f90f3e move to codebase-defined entry point style, with basic command line argument parsing, capture, thread-ctx, and other boilerplate deduplicated in the base layer's entry point definition 2024-02-25 15:02:05 -08:00
Ryan Fleury d8cf83b4d7 pull out & organize build configuration options, including entry point style, to context cracker 2024-02-25 13:30:15 -08:00
Ryan Fleury c1984edadf dont over-eagerly join udt building tassk 2024-02-23 11:13:12 -08:00
Ryan Fleury ac8a7ba988 fix enumerate gathering in new udt building pass 2024-02-23 11:07:09 -08:00
Ryan Fleury 6beb9951e6 adjust default task sizes in raddbgi_from_pdb 2024-02-22 16:54:39 -08:00
Ryan Fleury 5813cb2af8 proper thread names 2024-02-22 16:20:27 -08:00
Ryan Fleury 74d051f383 walk args as dependent types for member function types 2024-02-22 15:51:18 -08:00
Ryan Fleury 7facfb7d08 kill single threaded udt conversion code 2024-02-22 15:50:07 -08:00
Ryan Fleury fe1e0cc2fd move udt info conversion to task threads, divide up itype stream and do it wide 2024-02-22 15:49:46 -08:00
Ryan Fleury bcbd01bf2c eliminate type revisiting task list, just iterate itypes again - in preparation for dividing up the itype stream and doing udt building in parallel 2024-02-22 15:37:50 -08:00
Ryan Fleury 34f500ce27 push unit conversion & src file gathering to background task threads; dont preemptively join initial independent parses until they are necessary 2024-02-22 15:11:13 -08:00
Ryan Fleury 0e352f92df separate per-name-map baking stages from each other, and from top-level name map section build; do them all independently 2024-02-22 14:45:09 -08:00
Ryan Fleury d2adf3e067 extend task system with ability to specify per-task arenas, if needed - not necessary in the converter, since it is fire-and-forget, but this will make it more useful for the debugger later 2024-02-22 09:48:19 -08:00
Ryan Fleury c7e80ee135 raddbgi_from_pdb: move all top-level baking phases to task system threads. still a lot of improvement to do, these are top-level tasks and there is a lot of work *within* these tasks that is happening serially unnecessarily, but this is a good first step to parallelizing the bake. 2024-02-21 16:27:29 -08:00
Ryan Fleury 6a49672904 raddbgi_from_pdb: idx run baking; raddbg: catch up to new converter interface 2024-02-21 15:23:35 -08:00
Ryan Fleury 2dd4526dd9 raddbgi_from_pdb: path tree & string baking 2024-02-21 15:12:08 -08:00
Ryan Fleury f2cf518231 raddbgi_from_pdb: name map baking, small fixes with new baking strategy 2024-02-21 14:55:50 -08:00
Ryan Fleury 41b1f1c7e3 raddbgi_from_pdb: organize new baking path, which does all independent section list builds separately; do first pass of baked string map building 2024-02-21 14:36:15 -08:00
Ryan Fleury f93b71d8c3 raddbgi_from_pdb: untangle all baking stages - move almost all baking stages to a strictly read-only path of strings, idx runs, and so on. make section layout, given some loose input baking params, completely deterministic & well-defined, such that section list building for each stage of baking can be completely independent 2024-02-21 13:43:56 -08:00
Ryan Fleury 529262d471 begin untangling source file & path tree building in converter/maker/baker; this cannot happen as another implicitly-mutated-context thing that magically happens behing a top-level 'baking' function. instead, this needs to be constructed according to the rules of the user, and passed to baking stages as a batch 2024-02-20 16:32:09 -08:00
Ryan Fleury 7581a6866d raddbgi_from_pdb: overlap link name map building with type info building, since they are independent streams of work 2024-02-20 15:13:22 -08:00
Ryan Fleury 923714c3c9 raddbgi_make: split final blob flattening & encoding from 'baking' phase 2024-02-20 14:07:58 -08:00
Ryan Fleury b8a4aeac39 raddbgi_from_pdb: offload c13 line info parsing to task threads 2024-02-20 13:16:52 -08:00
Ryan Fleury e7ab92e07c raddbgi_from_pdb: move comp unit contributions parsing out to task threads; move per-comp-unit top-level symbol parsing to task threads 2024-02-20 13:09:23 -08:00
Ryan Fleury 53bc258c4a raddbgi_from_pdb: move itype dependency chain building to task threads 2024-02-20 12:58:04 -08:00
Ryan Fleury 7e36c25a31 fix more async fwd map building bugs; move symbol stream conversion to task system 2024-02-20 12:04:57 -08:00
Ryan Fleury 66ef1b3eeb raddbgi_from_pdb: move top-level compilation unit parsing to asynchronous tasks 2024-02-20 11:30:01 -08:00
Ryan Fleury 6b2e4abe81 unify async task kickoff/await mechanism in first pass of 'task system' layer; use in organizing various independent parsing passes of a pdb; also fix busted multithreaded fwd resolution pass 2024-02-20 11:16:54 -08:00
Ryan Fleury 10a0420264 raddbgi_from_pdb: parameterize symbol stream conversion pass with sub-range of symbols; this cannot be applied to unit conversion, since they have cross-sym-record concepts, but it *can* be used for global symbol streams, which are also the most expensive to convert. this majorly speeds up global symbol stream conversion 2024-02-19 16:41:22 -08:00
Ryan Fleury 0b73582b87 raddbgi_from_pdb: multithread initial independent parsing/preparation phases of converter 2024-02-19 15:52:26 -08:00
Ryan Fleury 8369637026 raddbgi_from_pdb: multithread itype forward resolution map building 2024-02-19 15:07:25 -08:00
Ryan Fleury 86ee3cb4b6 raddbgi_from_pdb: multithread per-unit symbol conversion 2024-02-19 14:42:13 -08:00
Ryan Fleury f7f57a2c7a fix enumerate parsing 2024-02-19 11:18:34 -08:00