Commit Graph
109 Commits
Author SHA1 Message Date
Nikita Smith b7fb4fe04d WIP improved signal handling in multi-threaded programs 2025-11-19 11:38:22 -08:00
Nikita SmithandRyan Fleury 1196de6916 move sys/wait.h to os_core_linux 2025-11-07 16:37:45 -08:00
Ryan Fleury 035e72306d o_cloexec; preserve leading slashes in root-level paths 2025-11-07 16:37:30 -08:00
Nikita SmithandRyan Fleury ddc57a0ac4 WIP changed backend to use ptrace seize and interrupt 2025-11-07 15:47:15 -08:00
Nikita SmithandRyan Fleury 857860fb27 remove unused includes and inline ptrace options define 2025-11-07 14:39:46 -08:00
Nikita SmithandRyan Fleury 66606b0327 use STAP probes to generate load and unload module events 2025-11-07 14:39:46 -08:00
Nikita SmithandRyan Fleury c4c9ef5182 WIP: got Linux to the point where single stepping and breakpoint
events are being reported correctly to the debugger
2025-11-07 14:39:46 -08:00
Nikita SmithandRyan Fleury 78f2e641bc fix program header rebase issue in non-PIE exes, and export program header
info through DEMON event
2025-11-07 14:39:45 -08:00
Ryan Fleury c738768e41 demon/win32: do not assume actual_read is valid after a failed process memory read 2025-10-09 16:05:13 -07:00
Ryan Fleury 284524e0c4 fix incorrect ctx check in win32 demon 2025-10-06 14:35:41 -07:00
Ryan Fleury 45a2137d08 linux: fix incorrect gethostname usage, fix build, fix clang warnings 2025-09-30 10:02:40 -07:00
Ryan Fleury 0d15b8670b eliminate bifurcated rw lock path based on exclusive mode; promote thread operations to base layer, use os layer as impl; first pass on moving file streaming layer to base layer's async wavefront 2025-09-17 14:47:55 -07:00
Mārtiņš MožeikoandRyan Fleury d8bb8c76c6 add shadow stack register and read it in win32 thread context 2025-09-03 09:36:20 -07:00
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 cd8c3a2172 enable read/write bits on just read data breakpoint on x64 - there is no way to do a read-only (without write) data breakpoint 2025-08-06 11:50:01 -07:00
Ryan Fleury 9c2bdf492f ptrace register reading debugging 2025-08-04 12:36:04 -07:00
Ryan Fleury 25963dc9b4 demon/linux: correct main module address range formation; further progress on event processing 2025-07-31 17:33:58 -07:00
Ryan Fleury a323aec6d0 demon/linux: x64 trap writing 2025-07-31 15:10:25 -07:00
Ryan Fleury 7c99e79981 demon/linux: first pass port at x64 register writing 2025-07-31 14:54:28 -07:00
Ryan Fleury 1a19bf9663 render/d3d11: adjust allowed frame 'latency' (frames-in-queue) based on number of active windows, to not unnecessarily block if we have two windows to build frames for; demon/linux: sketch out register writing path, ensure reg read/write paths have slots for other architectures 2025-07-31 14:09:42 -07:00
Ryan Fleury 9ef87e9d56 fix to match 32 -> 64 change in demon/win32 2025-07-29 14:22:23 -07:00
Ryan Fleury 7403a8ea3b demon/linux: x64 register reading 2025-07-29 14:19:54 -07:00
Ryan Fleury 0e9f2ee03c demon/linux: halting, sigstop cases 2025-07-28 17:47:50 -07:00
Ryan Fleury 64c2d98ede demon/linux: sketch out signal interpretation, more ptrace study 2025-07-28 17:25:24 -07:00
Ryan Fleury 4d7088d321 do not pre-emptively exit the debug event loop on timeout unless we actually have debug strings 2025-07-25 14:21:31 -07:00
Ryan Fleury fcf3e73f5f demon/linux: thread resuming in dmn_ctrl_run 2025-07-17 18:51:40 -07:00
Ryan Fleury 6fb406d6c5 demon/linux: launch event info coverage, module path strings, pipe deferred debug info events first on dmn_ctrl_run 2025-07-17 18:05:00 -07:00
Ryan Fleury eba2aff0f0 demon/linux: process read/write 2025-07-17 14:46:31 -07:00
Ryan Fleury 3466779d41 demon/linux: kill, detach, process iteration 2025-07-17 14:45:08 -07:00
Ryan Fleury 2db6b826a1 demon/linux: launching events/entity builds; access synchronization 2025-07-17 14:31:57 -07:00
Ryan Fleury 0610d5ae13 demon/linux: pid extraction, module extraction, most of launching path 2025-07-17 14:08:44 -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 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 4926f6cfc8 programmatic address range annotations; pipe -> ctrl entities; render in memory view 2025-06-08 17:37:55 -07:00
Ryan Fleury 94b969f203 copyright year 2025-06-02 14:13:57 -07:00
Ryan Fleury 14cfd87f68 start sketching out basic unreal type views 2025-05-28 18:00:16 -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 a379134ed8 demon tweaks / debugging; adjust call stack cache reading API to account for high-priority path, where we want to try computing the thread's call stack immediately 2025-05-16 21:12:58 -07:00
Ryan Fleury e513af5361 ditto 2025-05-14 15:30:49 -07:00
Ryan Fleury 60e47fb821 unwind cache -> callstack cache 2025-05-14 15:28:57 -07:00
Ryan Fleury 3fd1f9d255 stub out demon/fontprovider so we can build debugger 2025-05-10 14:28:14 -07:00
Ryan Fleury 8b7e7471f5 markup: thread id based APIs for names/colors; handle names/colors-before-thread, or id-based application, in ctrl layer 2025-05-03 16:45:45 -07:00
Ryan Fleury 7ba027e841 sketch out new markup API for programmatic address/data breakpoints 2025-04-12 15:21:48 -07:00
Ryan Fleury 6a5fa58d8a dedup flagged traps, so we don't write the same data breakpoint into the registers multiple times 2025-04-12 14:47:29 -07:00
Ryan Fleury 97e3c73086 fix flagged-trap-search 2025-04-12 14:39:38 -07:00
Ryan Fleury 0f380e9228 transmit user breakpoints hit from demon -> ctrl using ctrl-defined IDs, correllate those IDs to rd-defined IDs, use rd-defined IDs in stop events to count bp hits, rather than re-resolving breakpoints. further fixes & work on first pass of data breakpoints 2025-04-12 14:28:38 -07:00
Ryan Fleury ecad70ca19 pass through data breakpoint length, more progress on fixes/correctness in first pass 2025-04-11 18:07:00 -07:00
Ryan Fleury 929e68d074 first pass at setting up x64 debug registers for data breakpoints 2025-04-11 17:49:16 -07:00