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