Commit Graph
4386 Commits
Author SHA1 Message Date
Ryan Fleury 4195ce4bba raddbg: bitmap cache on ui thread - no win from async. incompatible with gl. 2026-09-30 12:28:01 -07:00
Ryan Fleury a2988333a5 linux_sock: meet windows in functionality - send/recv on both client/server 2026-09-30 11:42:03 -07:00
Ryan Fleury b5c02dd4fa linux_socket: checkpoint, get accepting/receiving working 2026-09-30 11:29:40 -07:00
Ryan Fleury 50b61822a8 stub out linux sockets 2026-09-30 09:48:45 -07:00
Ryan Fleury 98657d9b38 raddbg: eliminate old ipc mechanism; allow ipc network address override via command line argument 2026-09-30 09:32:02 -07:00
Ryan Fleury 29119335ef socket: client connections/sends; raddbg: move ipc sender mode to using socket layer 2026-09-30 09:27:47 -07:00
Ryan Fleury 82aaccd945 sock: fix sends, raddbg_core: send ipc results through socket, back to endpoint from which ipc command(s) originated 2026-09-30 08:57:11 -07:00
Ryan Fleury d2140ace3d raddbg: allow overriding ipc port from command line 2026-09-30 08:42:15 -07:00
Ryan Fleury 6a52e6deec sock: bucket socket connection pools / requests by 'session' - one session = one listener port, one pool of connections / io ring buffers - we will want many of these, since for ipc, the debugger wants to act as a server on the UI thread, and for remote, the debugger wants to act as a client on the ctrl thread. 2026-09-30 08:31:54 -07:00
Ryan Fleury 7ee21690c2 ui: fix scroll increment for more consistency with default native windows behavior; linux_window_manager: make consistent with windows scroll events 2026-09-30 08:12:47 -07:00
Ryan Fleury be3fa56927 base: memory map -> push new ranges to front, rather than end - this makes the common case of iterative retry loops asking for memory, then immediately needing it, faster 2026-09-30 07:56:33 -07:00
Ryan Fleury 00d4a1a56f dbg_engine: heuristically clear memory map & grab new stack page when advancing to new regions of stack for large unwinds 2026-09-30 07:55:55 -07:00
Ryan Fleury db645e5c90 build fixes 2026-09-29 21:14:43 -07:00
Ryan Fleury e270def19f socket: checkpoint on socket layer / win32 impl; plug into ipc driving 2026-09-29 21:08:34 -07:00
Ryan Fleury f781622a54 checkpoint on sockets layer 2026-09-29 16:34:18 -07:00
Ryan Fleury 7082c7b67d linux_demon: thread names 2026-09-29 13:09:41 -06:00
Ryan Fleury 0b91cab00a linux_demon: PTRACE_EVENT_STOPs can sometimes be reported even if a thread has already hit a trap (e.g. a trap net or breakpoint trap). this would sometimes cause spurious SIGTRAPs after issuing a PTRACE_INTERRUPT - so we need to flag halted threads to not treat that as a 'real' trap. furthermore, even though that trap was hit, it does not guarantee that the debugger would next see a SIGTRAP. that would cause spurious SIGILLs, because we'd resume threads *after* the trap, despite not seeing the trap, so they'd just see a malformed instruction (the bytes subsequent the initial trap). so in those cases, we need to roll such threads back, so that they re-execute the trap, and so that we see a regular SIGTRAP, and handle the trap correctly. 2026-09-29 12:28:05 -06:00
Ryan Fleury 2933143b08 win32_demon: make conflicting trap net / user bp trap behavior identical to linux - always find info for *first* trap in list. second... dbg_engine: store trap net traps *first*, so that trap net behavior is preferred when trap nets conflict with user bp traps. 2026-09-28 10:10:16 -06:00
Ryan Fleury 4e7a6127d8 dbg_engine: process memory cache - always retry on memgen 'tearing', do not enforce size restriction. linux_demon: correctly relativize loaded module paths when needed per the loading process' working directory. raddbg: disasm view, do not skip too far back - can go into unmapped space. eval: file/folder filtering - hoist exact matches to the top. 2026-09-28 09:18:59 -06:00
Ryan Fleury e7a9c430f8 rdi_from_dwarf: fix incorrect argument slot used in breg<N> conversion 2026-09-28 08:38:30 -06:00
Ryan Fleury d66094161d rdi_from_dwarf: do not assume non-zero root tags in each unit 2026-09-28 08:31:05 -06:00
kwy404 1ac8fb5202 base: fix data4 byte order in try_guid_from_string
The last two GUID groups were packed into a U64 and copied to data4 in
host byte order, so on little endian data4 came out reversed and
string_from_guid did not round trip (for example /RAD_GUID). Store the
value big endian so data4[0] is the first byte of the fourth group.
2026-09-27 00:20:42 -07:00
Ryan Fleury 2c226d8a4b selected-thread-only breakpoints; user setting for adding that by default; do this for 'run-to-line' operations 2026-09-25 14:28:54 -06:00
Ryan Fleury 315175e34d keep debug info status viz, just omit string if it matches the module (usual linux case) 2026-09-25 13:45:31 -06:00
Ryan Fleury eb845405e0 linux_window_manager: clipboard support 2026-09-25 13:10:08 -06:00
Ryan Fleury 0d93e80f84 linux notes 2026-09-25 11:19:24 -06:00
Ryan Fleury 0317f4c810 linux_demon: correct rebasing / phdr address parsing for both static/dynamic ELFs 2026-09-25 11:15:07 -06:00
Ryan Fleury bc7434f7ed linux_demon: do not fail when there is no dynamic loader present 2026-09-25 10:29:16 -06:00
Ryan Fleury 9fdcc88cab rdi_from_dwarf: correctly use unit_dir only when line table directories are relative; correctly use unit compilation unit name as first file in pre-dwarf-5 2026-09-24 11:37:24 -06:00
Ryan Fleury 31d10c3b4f rdi_from_dwarf: preserve unit dir in generated source file paths. do not assume relativity to binary, often incorrect 2026-09-24 11:24:42 -06:00
Ryan Fleury df1de0541a linux_demon: robustness to clone-then-stop, *or* stop-then-clone 2026-09-24 10:12:22 -06:00
Ryan Fleury ca0764c2e2 linux_demon: ptrace stop vs. clone notes - we cannot rely on the order! 2026-09-23 16:56:50 -06:00
Ryan Fleury cc82127537 eh_frame_unwind: correctly commit cfa_out - it is still unclear if we need this channel, since all we do right now is commit cfa to the sp. so presumably callers could just look at the parent's sp? but my understanding of this is not strong enough to know if that is 100% reliable, since my understanding is that the cfa is an abstract thing specifically because it may *not* be the sp. but not sure, need to look more into it later. 2026-09-23 11:53:59 -06:00
Ryan Fleury 99f35bb342 rdi_from_dwarf: cfa push opcodes 2026-09-23 11:28:24 -06:00
Ryan Fleury 0e134ade56 separate x64 exception enums from stuff that assumes x64 host + includes regs/data-tables/etc.; just include *that* in linux base 2026-09-22 03:44:36 -07:00
Ryan Fleury 6133e8f335 Revert "Revert "x64 does not belong in base - base is intended to be things we can assume everywhere, which explicitly disqualifies x64 by definition.""
This reverts commit f9950ef4e9.
2026-09-22 03:28:55 -07:00
Nikita Smith f9950ef4e9 Revert "x64 does not belong in base - base is intended to be things we can assume everywhere, which explicitly disqualifies x64 by definition."
This reverts commit 4e4639c2a0.
2026-09-21 14:05:13 -07:00
Nikita Smith 4add147a09 radlink: refactor MSF writer to allow allocation of contiguous stream backing
* remove MSF reader API
* remove PDB reader API
2026-09-21 14:00:07 -07:00
Nikita Smith 98c1191506 radlink: use bit arrays for marking discarded CV types 2026-09-21 14:00:06 -07:00
Ryan Fleury 7bfa4578d1 fix radbin/torture builds 2026-09-21 09:54:19 -07:00
Ryan Fleury 9796328ffa only inc x64 into base by default on linux, where we actually apparently need it - ideally we do not just pull in all of x64 just for a few enum codes' 2026-09-21 09:43:28 -07:00
Ryan Fleury 4e4639c2a0 x64 does not belong in base - base is intended to be things we can assume everywhere, which explicitly disqualifies x64 by definition. 2026-09-21 09:14:11 -07:00
Nikita Smith 48ba845a91 radlink: strip LF_PRECOMP earlier before parsing .debug$T to exclude it from leaf arrays 2026-09-21 09:08:08 -07:00
Nikita Smith 0ac6b35a98 base: add memory placeholders and generic page fault handler
* Add windows and Linux demand-mapping backends
* Add exclusive file creation, sizing, flushing and replacement APIs
2026-09-21 09:08:07 -07:00
Nikita Smith e50cef2bff minor fixes 2026-09-21 09:08:06 -07:00
Nikita Smith 2afb78e498 radlink: resolve alternate-name fallbacks through prevailing weak symbols
Follow prevailing weak definitions instead of synthetic anti-dependency
placeholders. Resolve all weak symbols before publishing results so
anti-dependency chaining rules are independent of worker order.
2026-09-21 09:08:06 -07:00
Nikita Smith 64c2216ae6 radlink: encode the DBI major build number in its 16-bit field 2026-09-21 09:08:05 -07:00
Nikita Smith 5b646344eb radlink: implement /NOENTRY 2026-09-21 09:08:05 -07:00
Nikita Smith 4663d1a89a radlink: handle thread pool release correctly 2026-09-21 09:08:04 -07:00
Nikita Smith 458e5029db radlink: absolute symbols with identical value are legal 2026-09-21 09:08:04 -07:00