Commit Graph

330 Commits

Author SHA1 Message Date
Ryan Fleury cdec8d5980 ctrl/demon: fastfail exception codes / notes; p2r2: finish symbol conversion etc. in new wavefront-style version 2025-08-19 16:47:12 -07:00
Ryan Fleury c33dd2869a define synchronization primitive interface in base layer, implement using os layer; convert all usage -> base layer; use base sync primitives in lane tctx info 2025-08-18 10:46:43 -07:00
Ryan Fleury 7be1faaa9b fix callstack cache lookup early out case 2025-08-13 14:13:10 -07:00
Ryan Fleury 36dcd65a83 first pass at call stack tree evaluation 2025-08-11 16:08:04 -07:00
Ryan Fleury 056604fb94 sketch out tline -> vline text wrapping cache types; first pass of async call stack tree builder 2025-08-11 13:46:06 -07:00
Ryan Fleury 1856c52e58 xxhash for ctrl layer 2025-08-05 09:27:38 -07:00
Ryan Fleury b31b4612e9 pre-emptive thread register cache updating on ctrl thread - cache reading/updating on ui thread should always be allowed to gracefully fail, since it is literally impossible on linux, but we can always rely on the ctrl thread to pipe the right thing through eventually. 2025-08-04 13:13:18 -07:00
Ryan Fleury ad735dab5e pull raddbg byte attachment aside into standalone section - this guarantees byte placement, does not rely on ordering, and does not require symbols 2025-07-31 13:15:37 -07:00
Ryan Fleury 8d1de1b24c report user errors from ctrl thread more vigorously 2025-07-23 14:06:17 -07:00
Ryan Fleury 6026ac16d4 fix call stack flickering; do not timeout early if we need to fall back to stale results after requesting new call stack compute 2025-07-23 10:38:59 -07:00
Ryan Fleury 6e6a2df0cb implement 'priority thread' in demon, to prefer debug events from selected thread - greatly improves multithreaded stepping 2025-07-16 15:38:27 -07:00
Ryan Fleury fc8b521b2c adjust demon to correctly produce, & ctrl to correctly process, breakpoint events which cannot be correlated to a high-level UI-defined breakpoint state. this catches, for example, data breakpoints which are programmatically set by the user program. 2025-07-16 11:54:02 -07:00
Ryan Fleury 74e1ccd147 invalidate mem/reg/run generations on every dmn run 2025-06-28 11:18:02 -07:00
Ryan Fleury 89cfd65f9c fix incorrect programmatic bp generation on vaddr range notes... 2025-06-28 11:07:43 -07:00
Ryan Fleury 709bc2cfab float run/mem/reg generations out of demon, into core; fix issue of demon access synchronization w/ mem gens, causing failure-to-update-stale-parts-of-process-memory-cache 2025-06-28 10:02:51 -07:00
Ryan Fleury e34e8adbaa do not disqualify flagged expr breakpoints if 0 2025-06-27 23:15:02 -07:00
Ryan Fleury b67d7f729b do not require eval cache for breakpoint touched-symbols parse/check; reintroduce memory read retry loop - necessary in some cases 2025-06-27 22:59:10 -07:00
Ryan Fleury 5ba9b6abd8 regression debugging & notes 2025-06-27 22:54:34 -07:00
Ryan Fleury 36f5597d8e eliminate unneeded path-renormalization in debug info cache lookup 2025-06-25 10:52:29 -07:00
Ryan Fleury e2eb1cd6d6 do not unnecessarily block on parses when closing modules 2025-06-25 09:41:48 -07:00
Ryan Fleury 10a49ca331 actually, rely on entry point trap calculation to do exe-rdi waiting; adjust default fonts to be more consistent with windows 2025-06-25 08:32:48 -07:00
Ryan Fleury a2608261d1 always wait for initial module debug info 2025-06-25 07:56:51 -07:00
Ryan Fleury ad995374bb cache module requirement disqualifications; reuse within scope of same run (& thus same user bps) 2025-06-20 07:57:16 -07:00
Ryan Fleury d532f62aaa plug in expression-based breakpoints to RDI-necessary-checking path 2025-06-19 14:53:13 -07:00
Ryan Fleury bfe90f5906 plug in thin pdb analysis to determine if waiting on a full RDI conversion is necessary - do not wait if RDI is determined to be unnecessary given breakpoints! 2025-06-19 14:48:13 -07:00
Ryan Fleury 0ff246d13f fixes to ctrl call stack lookup path 2025-06-18 13:26:45 -07:00
Ryan Fleury df901b2497 pass over ctrl call stack lookup path, eliminate races between multiple retry loops 2025-06-18 12:42:34 -07:00
Ryan Fleury a1f71379f4 adjust thread extra string rendering to account for missing modules/rdi frames 2025-06-18 10:40:50 -07:00
Ryan Fleury bee2570d39 fix double-load in radbin conversion path; fix incorrect mutation of potentially-nil trees when snapping to a file without a specific line; fix di_close path when work is occurring 2025-06-18 09:56:47 -07:00
Ryan Fleury 401f117653 adjust step trap net build in case of memory read failure - ensure we get correct memory read, otherwise we can generate bad trap nets during heavy load. allow high vs. low priority in async rdi loading; use low-priority in pre-emptive case 2025-06-18 08:36:41 -07:00
Ryan Fleury 53e6050ee0 outer loop timeout exit condition in ctrl process memory cache lookup 2025-06-16 09:10:25 -07:00
Ryan Fleury 49de09883e plug in dwarf converter to radbin; hook up to both rdi generation & breakpad generation; radbin exe -> pdb / elf -> dwarf inferences; cleanup / unification passes 2025-06-10 08:53:57 -07:00
Ryan Fleury 4926f6cfc8 programmatic address range annotations; pipe -> ctrl entities; render in memory view 2025-06-08 17:37:55 -07:00
Ryan Fleury b57deebd03 another pass over ctrl process memory cache lookup, prevent another deadlock case 2025-06-03 12:06:02 -07:00
Ryan Fleury 594594ec72 adjust ctrl memory cache committing condition to be more robust to bad regions. otherwise we were flooding new request to repeatedly recopy from the client, when we effectively already knew it would never be valid. 2025-06-02 15:28:26 -07:00
Ryan Fleury 44280f3dd0 fix bad wait condition in ctrl memory cache accessing 2025-06-02 14:45:52 -07:00
Ryan Fleury 94b969f203 copyright year 2025-06-02 14:13:57 -07:00
Ryan Fleury becb61f00d many-thread-stepping test in mule, adjust call stack thread name decoration limit, now that call stack computation is async; tweak ctrl process memory cache lookup exit condition to be more robust to failed-read cases 2025-06-02 11:59:49 -07:00
Ryan Fleury 4aeadc12b7 adjust memory reading fail conditions in trap net generation; fix early-aborting of retry loop in process memory cache lookup 2025-05-22 12:15:31 -07:00
Ryan Fleury 02611de6af broadcast wakeup event on ctrl cache commits 2025-05-22 11:39:08 -07:00
Ryan Fleury d254d8edb4 switch singular frame scopes to stack of frame scopes; always ensure scopes are closed before breaks in frames. 2025-05-22 09:28:13 -07:00
Ryan Fleury 895a965f70 defer call stack scope touches until retry loop exit 2025-05-21 17:33:30 -07:00
Ryan Fleury 0eb37c527c fix incorrect abort-on-0-rip condition in unwinder path; we can still have nonzero rsps and find valid frames. 2025-05-20 15:09:35 -07:00
Ryan Fleury 95dbba1144 debugging notes of programmatic data breakpoints 2025-05-20 13:18:15 -07:00
Ryan Fleury a55c5b49aa similarly adjust call stack cache timeout periods 2025-05-20 13:06:16 -07:00
Ryan Fleury 15459edc75 adjust wait timeout properties of ctrl process memory cache grab; don't wait forever to submit, don't wait if work was completed even if results bad, etc. 2025-05-20 13:03:58 -07:00
Ryan Fleury 7fc39a3d97 eliminate old debug engine unwind cache 2025-05-20 11:13:04 -07:00
Ryan Fleury 56b975a6b1 adjust async call stack querying API to guard against waiting in clearly-invalid cases (trying to wait for call stacks when running, for example); also eliminate logs 2025-05-20 10:36:44 -07:00
Ryan Fleury 7dc4399300 dead ctrl process memory cache elimination 2025-05-19 19:38:27 -07:00
Ryan Fleury 54325828b2 absolutify target stdout/stderr/stdin paths based on working directory 2025-05-19 18:56:13 -07:00