Commit Graph
100 Commits
Author SHA1 Message Date
Ryan Fleury bcbb4142cf plug in x64 intel-syntax disassembly 'language' into text analysis cache layer, to use that layer to naturally do parser/highlighter work for disassembly 2024-03-28 12:01:14 -07:00
Ryan Fleury d3570e8147 further progress on disassembly cache; instead of caching the text via the disassembly cache, simply submit into the hash store; this allows the disassembly cache to be composed with other caches, like the text analysis cache. + plug this system into the disassembly view rule, so now we can disassemble arbitrary pointers in the watch window 2024-03-28 11:36:57 -07:00
Ryan Fleury c91cd69536 first pass at new hash-store-based disassembly cache layer; can serve as a general-purpose asynchronous disassembly visualization cache layer, regardless of where that data ultimately comes from - can click into a file, process memory cache, etc. 2024-03-28 10:57:34 -07:00
Ryan Fleury f46691d79a dasm -> dasmi; make room for new dasm_cache layer 2024-03-28 09:45:41 -07:00
Ryan Fleury dbb0c1e0a4 file_stream: solidify retry mechanism; df: multiline controls for text_cache-based info, begin porting over txti-based systems 2024-03-28 09:36:09 -07:00
Ryan Fleury 96ff5efe7c allow delete/rename access on exe/debug handles 2024-03-28 08:54:08 -07:00
Ryan Fleury a14d0f5b18 rewire up target colors with processes/modules/threads; use first module path for correllation rather than entities & id correllation 2024-03-27 15:25:27 -07:00
Ryan Fleury 22185cee5f eliminate stuck-step disabling hack 2024-03-27 14:36:11 -07:00
Ryan Fleury 1da92b8dbc store per-launch entry points in ctrl entity store; use to later correllate PIDs to custom entry points in run path 2024-03-27 14:24:06 -07:00
Ryan Fleury 291bf3875d eliminate launch-and-init path, switch fully to separate 'launch' and 'run' paths; snap to selected thread if no stopper thread on stopped events; 2024-03-27 14:09:29 -07:00
Ryan Fleury ee056aa45d collapse user bp gathering helper, used only once 2024-03-27 12:29:45 -07:00
Ryan Fleury 53163f3610 ctrl: kill launch_and_handshake; begin extending run to be usable for launch-and-init and launch-and-run operations 2024-03-27 12:26:15 -07:00
Ryan Fleury 4899f1871b correctly close module file handles on module unloading in new demon layer 2024-03-27 11:19:24 -07:00
Ryan Fleury d73a3d4196 plug txt-layer-provided tokens into text view rule - both source code & text view rule are now completely powered via the txt visualization layer, rather than the special-purpose txti layer, which is now being retired 2024-03-26 16:47:15 -07:00
Ryan Fleury 4272258f99 txti -> txt; checkpoint #5 2024-03-26 16:38:12 -07:00
Ryan Fleury 8792c2280c txti -> txt; checkpoint #4 2024-03-26 16:26:31 -07:00
Ryan Fleury 88798e4453 txti -> txt; checkpoint #3 2024-03-26 16:04:21 -07:00
Ryan Fleury e80c69cb8f txti -> txt; checkpoint #2 2024-03-26 16:00:43 -07:00
Ryan Fleury 40ed36df3f txti -> txt; checkpoint #1 2024-03-26 15:31:39 -07:00
Ryan Fleury 88b692c840 eliminate fallback cache in text cache layer; we can use the hash store layer to rewind 2024-03-26 12:11:00 -07:00
Ryan Fleury 9dc484858a eliminate geo cache fallback key/hash cache; we can just use the hash store to rewind 2024-03-26 11:59:54 -07:00
Ryan Fleury f7e7aec355 bundle 'get key & stream' operation in process memory cache; eliminate old cache interaction in texture view rule hook 2024-03-26 11:55:15 -07:00
Ryan Fleury 7cf8da0b43 eliminate fallback key/hash pair cache in texture cache layer; we can rely on rewinding purely via the hash store layer 2024-03-26 11:50:44 -07:00
Ryan Fleury 4027338a2f adjust stripe counts 2024-03-26 11:30:47 -07:00
Ryan Fleury 4bc82db69e deduplicate txti/text_cache language stuff; port over odin lexing 2024-03-26 11:00:37 -07:00
Ryan Fleury ca6e75d466 allow c++14 digit separators in c/c++ lexing 2024-03-26 10:42:46 -07:00
Ryan Fleury 6393766f82 deduplicate txti/txt layer lexing 2024-03-26 10:31:20 -07:00
Ryan Fleury 206d48b363 notes 2024-03-25 15:47:34 -07:00
Ryan Fleury f561abfd63 show stopper-thread exception-info on entity tooltips, when applicable 2024-03-25 15:43:00 -07:00
Ryan Fleury 6d1c0d9f6d louder & more informative exception info viz 2024-03-25 15:37:31 -07:00
Ryan Fleury 55146b547b reading & organization pass over unwinding layer; deduplicate PE info with PE layer, move dwarf info to in-progress dwarf layer 2024-03-25 14:42:54 -07:00
Ryan Fleury 1c3792a3da tighten architecture-specific path for unwinder 2024-03-25 13:34:43 -07:00
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 23c1ea0e68 ui: if only one view scroll axis is specified on a box, always use scroll info to fill it, regardless of which axis that scroll took place on 2024-03-25 13:02:17 -07:00
Ryan Fleury aa85b2cdbb correctly pass unicode environments to launched child processes; also treat unicode command line arguments correctly 2024-03-25 12:57:00 -07:00
Ryan Fleury e136a67535 demon/win32: correctly report exception repetitions for unhandled exception cases 2024-03-25 11:00:00 -07:00
Ryan Fleury 83ecb4b86a ctrl thread stepping machine: read initial stack-pointer-check-value *before* single-stepping stuck threads, otherwise we can obtain an incorrect stack check value if the single-step causes a call. 2024-03-22 17:27:54 -07:00
Ryan Fleury c26274ac70 disable single-step-stuck-thread behavior when launching-and-initing, such that breakpoints on entry point will not be stepped over 2024-03-22 17:17:08 -07:00
Ryan Fleury 995804cc78 demon2 -> demon; eliminate original demon layer 2024-03-22 16:33:48 -07:00
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