Commit Graph
100 Commits
Author SHA1 Message Date
Ryan Fleury c9df04ca60 merge 2024-03-22 16:31:05 -07:00
Ryan Fleury 71f3d18bf7 notes 2024-03-22 16:30:04 -07:00
Ryan Fleury 928532f386 do not attempt to refresh tls base calculation cache, if targets running 2024-03-22 16:29:50 -07:00
Ryan Fleury 7cd524d39d fix tls base calculation in demon2 2024-03-22 16:19:35 -07:00
Ryan Fleury 2c8c9a497c parameterize ctrl thread registers cache with entity store, rather than relying on implicit demon-api-provided cache 2024-03-22 16:15:20 -07:00
Ryan Fleury c636e1ad2e extend demon2 with explicit separation between blocking ctrl mechanisms & passive access/introspection/writing mechanisms; extend demon2 api with access mechanism 2024-03-22 15:53:04 -07:00
Ryan Fleury 07bbf1b43c organize demon2 by thread api 2024-03-22 15:15:33 -07:00
Ryan Fleury ca01e66ea2 plug in tls root vaddr path 2024-03-22 14:12:40 -07:00
Ryan Fleury 14ac7141e7 double buffer member cache 2024-03-22 13:53:14 -07:00
Ryan Fleury 9de678ec22 disable debug heap by default; get unwindg path off caching layers & use demon reads directly 2024-03-22 13:51:26 -07:00
Ryan Fleury e9129975e3 double buffer locals cache & tls base cache; introduce synchronizing mechanism for run vs. non-run ctrl thread states, to only attempt demon reads/queries during non-running times 2024-03-22 13:32:22 -07:00
Ryan Fleury 3994adae92 double-buffer frontend unwind cache 2024-03-22 11:56:28 -07:00
Ryan Fleury 982f2b6bab extend process memory cache queries with output channel for staleness detection - in some cases this is crucial, in other cases you don't care & want to passively accept stale redsults 2024-03-22 10:33:20 -07:00
Ryan Fleury a694a77eba fix halting, unattached running, and caching generations in demon2 2024-03-21 16:49:34 -07:00
Ryan Fleury 54677e05ec fix incorrect metagen pointer comparisons 2024-03-21 16:21:17 -07:00
Ryan Fleury 236214db25 eliminate unnecessary layers in frontend 2024-03-21 16:13:01 -07:00
Ryan Fleury 2c9ff37b2c sketch out new unwind cache types 2024-03-21 13:53:12 -07:00
Ryan Fleury 1466b27385 tweak registers cache lookup rules, to correctly return stale results on failed reads 2024-03-21 11:48:48 -07:00
Ryan Fleury e0e84c2ee3 further progress on integrating new demon layer 2024-03-21 11:28:47 -07:00
Ryan Fleury c2709d78b8 dont over-ambitiously consider the unwind cache up-to-date if some thread unwinds failed 2024-03-17 12:21:57 -07:00
Ryan Fleury 1269b93588 fix unchecked zero pointers in bake string map joining task, when zero pointers are legal 2024-03-17 12:17:22 -07:00
Ryan Fleury 14d3037aec raddbgi_breakpad_from_pdb: add a few missing null checks for edge cases 2024-03-17 12:17:22 -07:00
Ryan Fleury fbf4cce0e7 make tpi hash parsing gracefully exit on empty input data 2024-03-17 12:17:21 -07:00
Ryan Fleury d3cdb97a4e notes 2024-03-17 12:16:40 -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 8f0e39024f fix additional demon2 typo 2024-03-14 21:24:12 -07:00
Ryan Fleury aa7c30d85b ctrl: first pass at new thread registers cache; also checkpoint for progress on moving to new demon layer 2024-03-14 21:09:43 -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 2fff68cfcf make tpi hash parsing gracefully exit on empty input data 2024-03-13 15:10:39 -07:00
Ryan Fleury 936c6149e3 remove timeout on thread register cache accessor 2024-03-12 16:35:43 -07:00
Ryan Fleury c417f15912 fix task entry points in breakpad converter 2024-03-12 16:01:30 -07:00
Ryan Fleury ea74f928cd fix process memory cache query mechanism when ring buffer is near capacity 2024-03-12 15:51:26 -07:00
Ryan Fleury 871419de39 bugfixes in new demon layer; adjust retry mechanism in process memory cache query; ui fixes 2024-03-12 15:49:36 -07:00
Ryan Fleury 8639faabdd ctrl entity string allocation & tracking, for thread names & module names; fix process memory cache in edge cases 2024-03-12 14:56:02 -07:00
Ryan Fleury d1e88f781e tweak ctrl entity building to be bucketed per 'entity store' - we can now have multiple 'entity stores', one on the frontend thread, one on the ctrl thread, and keep them in sync at specific points via event lists 2024-03-12 14:20:24 -07:00
Ryan Fleury 4a3cc9bb39 get raddbg building on new demon layer 2024-03-12 13:55:13 -07:00
Ryan Fleury 2749301777 checkpoint - moving ctrl mostly over to demon2; sketching out a few missing cache pieces 2024-03-12 11:41:53 -07:00
Ryan Fleury 90d9f3b7c2 fix task entry points in breakpad converter 2024-03-12 09:05:00 -07:00
Ryan Fleury 49ccf50fd4 first pass at integrating new demon2 layer into debugger, need to change ctrl a bit to adopt some of the things that were previously being left up to demon layers 2024-03-08 12:49:06 -08:00
Ryan Fleury 0d0c599e00 begin process of moving pe unwinding info into pe layer; more demon2 work checkpoint 2024-03-05 16:54:57 -08:00
Ryan Fleury e25364a835 strip out some unnecessary apis from the demon layer, since we'll be doing per-entity caching in ctrl and keep demon as close to a thin abstraction as possible 2024-03-05 14:55:49 -08:00
Ryan Fleury f85718f1e2 fix eval header 2024-03-05 14:48:23 -08:00
Ryan Fleury 4074551a1a hook up demon2 initialization to base layer entry point 2024-03-05 14:27:40 -08:00
Ryan Fleury 0c436f0d5b first pass at demon replacement layer; just trimming out old code & cruft & reading & naming pass 2024-03-05 14:17:41 -08: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 7eca2a35cd raddbgi_dump: dump string table 2024-02-29 11:04:53 -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 0916c2a3c8 first pass at bake string chunk list, bake string chunk list map, and bake string chunk list sorting paths/datastructures - basic machinery for going wide on the string/name map builds 2024-02-28 13:27:48 -08:00
Ryan Fleury 56690a703f fix padding insertion pass over members gathering 2024-02-27 06:35:11 -08:00
Ryan Fleury bb0ebb5df2 raddbgi prefix on breakpad converter 2024-02-26 17:01:52 -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 d9897161c2 first half of first pass at breakpad textual symbol info format exporter 2024-02-26 11:49:19 -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 443c3fb74b get dwarf -> raddbgi converter on new entry point style 2024-02-25 15:03:27 -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 dd05eaa21e sketch out some codebase-wide standard thread entry point boilerplate 2024-02-25 14:13:27 -08:00
Ryan Fleury 93ab48ecdf organization/naming/dead-code-elimination pass over base 2024-02-25 14:00:35 -08:00
Ryan Fleury 3ec1edaff1 oops, fix clang 2024-02-25 13:33:27 -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 c4b8916bcf raddbgi dump - fix bad condition 2024-02-25 09:59:56 -08:00
Ryan Fleury 642acdf474 switch voff -> symbol name path to graceful failure RDI lookups 2024-02-25 09:57:51 -08:00
Ryan Fleury 7c9f127425 cleanup/naming pass over raddbgi_dump, do not require specific named params 2024-02-24 22:03:08 -08:00
Ryan Fleury 93c0e657fd eliminate old test files 2024-02-24 20:08:44 -08:00
Ryan Fleury 10ab27eb43 oops - actually respect operating system file system match flags in dbgi layer 2024-02-24 18:16:59 -08:00
Ryan Fleury 4c76eb73f1 respect operating system file system case sensitivity rules in dbgi layer 2024-02-24 14:04:41 -08:00
Ryan Fleury d9aa49e45c respect wait timeouts in task system join 2024-02-23 12:17:57 -08:00
Ryan Fleury 4da33c0d2c eliminate noop in ui layout pass 2024-02-23 11:21:47 -08:00
Ryan Fleury dd0416f9f9 fix nil expressions mapping to valid expression kinds, thus implying children nodes 2024-02-23 11:18:53 -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 50f7d53db2 eliminate unnecessary copy in raddbgi string map interner 2024-02-22 14:15:23 -08:00
Ryan Fleury b508489416 clean up old transitionary code 2024-02-22 10:03:26 -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 a5493d5edb appease the clang gods 2024-02-21 16:48:22 -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 25ef98a98c raddbgi_make: eliminate old bake src files, switch over completely to user-specified src files; enforce nil entries in all tables for all cases 2024-02-21 10:36:22 -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