Nikita Smith
7d0e168f8f
typoes
2025-12-12 12:16:28 -08:00
Nikita Smith
7947d4dc55
outline DWARF expression evaluator
2025-12-11 16:43:21 -08:00
Nikita Smith
5b6ffd5a49
clean up instrumentation inherited during fork
2025-12-09 16:08:19 -08:00
Nikita Smith
094370c028
bugfix last string query
2025-12-09 14:02:06 -08:00
Nikita Smith
962f0e30ae
WIP fork
2025-12-09 09:56:43 -08:00
Nikita Smith
c221286ab8
WIP process attaching
2025-12-08 13:29:24 -08:00
Nikita Smith
9659ab4ad2
remove privileged registers
2025-12-05 17:03:05 -08:00
Nikita Smith
8005c31276
remove x86 register code
2025-12-05 16:39:02 -08:00
Nikita Smith
ce77442d37
fix x87 register layout
2025-12-05 16:36:46 -08:00
Nikita Smith
f4ceaecf75
set flags in xstate_bv for updated registers
2025-12-05 13:35:10 -08:00
Nikita Smith
38dbcde3f4
debug info path entity is needed otherwise unwinder fails to map key to RDI
2025-12-02 17:00:05 -08:00
Nikita Smith
81f08a01bc
inline anonymous members
2025-12-02 14:39:36 -08:00
Nikita Smith
f8f3f95d33
set trace options in PTRACE_SEIZE and remove unnecessary PTRACE_SETOPTIONS
2025-11-27 15:45:36 -08:00
Nikita Smith
1602a9e6ea
runtime target OS handling
2025-11-27 11:17:47 -08:00
Nikita Smith
7f701dd806
minor fix
2025-11-26 20:31:34 -08:00
Nikita Smith
f9561cb618
add support for CFA in the eval system
...
Canonical Frame Address is a DWARF-only concept encoded in the unwind info.
Debugger must store this data for each call frame and provide it to
the eval system based on selected stack frame.
To abstract over format details, we introduce a "Frame Unwind Context".
For DWARF, this context maintains the intermediate unwind state and exposes
the CFA, whereas for PE, it remains empty.
2025-11-26 15:42:40 -08:00
Nikita Smith
2a6d0d737c
add CFA op to the bytecode
2025-11-26 15:13:24 -08:00
Nikita Smith
a1884aaf5f
WIP handle abnormal process initialization
2025-11-25 16:24:57 -08:00
Nikita Smith
0565fdef0a
WIP add support for GNU LibC TLS model
...
Unlike on Windows, TLS index isn't part of the module format. glibc stores
it in the opaque link_map struct. There are many different heuristics
a debugger can use to locate it but most of them are unreliable and
prone to errors, or don't work when debugger attaches to a process.
We adopt the newer approach of looking for special symbols
in glibc that provide TLS index offset. These symbols were added in
2021, so programs linked with older glibc won't have TLS support.
2025-11-21 16:41:35 -08:00
Nikita Smith
7347d2f1bc
pipe DW_ExprOp_FormTlsAddress through DW_ExprOp_GNU_PushTlsAddress
2025-11-21 16:11:16 -08:00
Nikita Smith
6fa71607e2
do not emit global vars for decls
2025-11-21 16:10:28 -08:00
Nikita Smith
533e7431e7
WIP switch to special mutex for syncing halts
2025-11-19 13:01:25 -08:00
Nikita Smith
b7fb4fe04d
WIP improved signal handling in multi-threaded programs
2025-11-19 11:38:22 -08:00
Nikita Smith
597ea44337
handle empty hash table case
2025-11-19 11:25:54 -08:00
Nikita Smith
e0d0cf6e29
helper marco for dealing with syscalls that are interrupted
2025-11-19 11:25:16 -08:00
Nikita Smith
a82cba0c87
cache env strings on startup
2025-11-19 11:24:11 -08:00
Nikita Smith
08f794527c
updated hashing libraries
2025-11-13 11:45:34 -08:00
Nikita Smith
7cafde3376
revert DWARF changes to commit bda3a71379
2025-11-13 10:53:29 -08:00
Ryan Fleury
2a76093e17
form value resolution; line table header parsing
2025-11-11 17:24:12 -08:00
Ryan Fleury
faee02f763
simplified dwarf parsing checkpoint: pull out form value reading, line table header parsing
2025-11-11 16:27:16 -08:00
Ryan Fleury
b8a8ec31c7
checkpoint on simplified / stripped down dwarf -> rdi, and dwarf parsing helpers
2025-11-11 15:10:16 -08:00
Ryan Fleury
17ec73d752
dwarf cleanup checkpoint
2025-11-10 17:41:01 -08:00
Ryan Fleury
08642d2745
next checkpoint on dwarf cleanup
2025-11-10 16:37:23 -08:00
Ryan Fleury
f396b2eaa3
start dwarf -> rdi cleanup; eliminate some assertions-as-validation, remove incorrect assumption that line info addresses are vaddrs (they seem to be voffs)
2025-11-10 15:06:52 -08:00
Ryan Fleury
efb4731ace
respect leading slashes in bake file path tree lookup
2025-11-07 16:53:30 -08:00
Ryan Fleury
ed57428602
flip meta check in build.sh
2025-11-07 16:38:46 -08:00
Nikita Smith and Ryan 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
Ryan Fleury
d4d2159389
eliminate process array join api, no longer needed
2025-11-07 15:54:41 -08:00
Ryan Fleury
4ea3c5a0e4
artifact cache cancellation mutex -> semaphore (fixes cancellation thread on linux - we cannot take/drop across threads with mutexes); flip no_meta -> meta
2025-11-07 15:47:15 -08:00
Ryan Fleury
85778910c6
radbin build.sh
2025-11-07 15:47:15 -08:00
Nikita Smith and Ryan Fleury
32bdd14d8e
image base for a dynamic ELF is always zero
2025-11-07 15:47:15 -08:00
Nikita Smith and Ryan Fleury
ddc57a0ac4
WIP changed backend to use ptrace seize and interrupt
2025-11-07 15:47:15 -08:00
Ryan Fleury
80ccfba3c6
fix metagen build on linux
2025-11-07 14:57:41 -08:00
Ryan Fleury
af423b142e
gl shear
2025-11-07 14:47:14 -08:00
Nikita Smith and Ryan Fleury
920a3ab3b7
discard unknown FDEs
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
b00d3d9041
print out call stacks on crashes
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
69fe51ec94
set permissions on shared memory
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
1cb1522931
minor cleanup
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
90c4e1604e
implement semaphore open and clsoe
2025-11-07 14:39:46 -08:00