Nikita Smith
ddfeba8ae1
natvis for DWARF writer
2026-02-11 00:01:21 -08:00
Nikita Smith
da6fd986f0
do not exit on failed call
2026-02-11 00:00:56 -08:00
Nikita Smith
aaa5b0cb59
pass over DWARF dumper
2026-02-11 00:00:43 -08:00
Nikita Smith
031e24e1aa
handle zero operand count
2026-02-10 23:59:09 -08:00
Nikita Smith
ee8562ed97
fix type for the implicit const
2026-02-10 23:58:45 -08:00
Nikita Smith
69434278bd
WIP DWARF writer
2026-02-10 23:57:43 -08:00
Nikita Smith
ff82d9843c
matcher for DW_Form
2026-02-10 15:27:57 -08:00
Nikita Smith
6e100ad52f
make form_kind part of DW_Form
2026-02-10 15:27:27 -08:00
Nikita Smith
12f8f4e078
move DW_Form to the DWARF format header
2026-02-10 15:26:56 -08:00
Nikita Smith
988b0f5541
header guard typo
2026-02-09 23:42:09 -08:00
Nikita Smith
9b1a5ae8f8
minor fix
2026-02-09 23:41:33 -08:00
Nikita Smith
482a61aaf7
obj -> COFF serializer
2026-02-09 23:41:19 -08:00
Nikita Smith
33b1e25295
arch -> COFF machine
2026-02-09 23:40:31 -08:00
Nikita Smith
1579e6eae6
simplify serial pushes for u32 and u64
2026-02-09 23:40:10 -08:00
Nikita Smith
d7ffea785f
compact print abbrev data
2026-02-06 18:49:52 -08:00
Nikita Smith
71a46985b6
use string table extension for long section names
2026-02-05 19:45:35 -08:00
Nikita Smith
010f54674f
test for LEB128 reader and writer
2026-02-05 19:45:35 -08:00
Nikita Smith
b0d0b6a2b2
factor out LEB128 writer
2026-02-05 19:45:34 -08:00
Nikita Smith
b44f79fe44
test section folding with different alignment
2026-02-05 19:45:34 -08:00
Nikita Smith
0c02e21284
WIP tests for ICF
2026-02-05 19:45:34 -08:00
Nikita Smith
b6c74ae9bc
update values in import_export test
2026-02-05 19:45:34 -08:00
Nikita Smith
0015e52d3c
add /FAILIFMISMATCH
2026-02-05 19:45:34 -08:00
Nikita Smith
8b729d4588
refactored testing utility
...
- factored out common parts in tests into T_BeginTest and T_EndTest
- separated radlink and DWARF tests
2026-02-05 19:45:34 -08:00
Nikita Smith
d363c30e95
copy out generic
2026-02-05 19:43:47 -08:00
Nikita Smith
ae236f5ccf
assert element size does not overflow the simple buffer in radsort
2026-02-05 19:43:47 -08:00
Nikita Smith
09472fafbd
typo in the ordinal export sorter
2026-02-05 19:43:47 -08:00
Nikita Smith
15831c704f
lock free hash trie
2026-02-05 17:46:10 -08:00
Nikita Smith
edd982852e
pass over DWARF converter
...
- prepare to thread line table conversion
- error handling
- organizational improvements
2026-02-05 17:43:20 -08:00
Nikita Smith
4b893d50ec
implement swap and drop opcodes; stub out GNU_UnInit
2026-02-05 17:43:20 -08:00
Nikita Smith
5986e595ce
eval type group for F80 and F128
2026-02-05 17:43:20 -08:00
Nikita Smith
7d4a64aae6
change size of immediate on Cond opcode to match Skip immediate size
2026-02-05 17:43:20 -08:00
Nikita Smith
2ccb6f6409
natvis
2026-02-05 17:43:19 -08:00
Nikita Smith
3bc9bacf6f
update line table dumper; pipe down verbose switch to the DWARF dumper
2026-02-05 17:43:19 -08:00
Nikita Smith
469fbece3d
fix check extension in attrib formatter
2026-02-05 17:43:19 -08:00
Nikita Smith
4f30f64914
switched to TryRead helper macro for parsing abbrev table and compile units
2026-02-05 17:43:19 -08:00
Nikita Smith
cd70b7e1ec
define default debug macros for third party code
2026-02-05 17:43:19 -08:00
Nikita Smith
3d6ca7d610
indent macros
2026-02-05 17:43:19 -08:00
Nikita Smith
6d8cbe8e60
fix stack reference
2026-02-05 17:43:19 -08:00
Nikita Smith
2ca68c1039
flush output buffer before formatting
2026-02-05 17:43:19 -08:00
Nikita Smith
c81eafb656
fix memory poisoning for arenas allocated from an optional buffer
2026-02-05 17:43:19 -08:00
Nikita Smith
dec5258c32
piece opcodes do not pop the stack
2026-02-05 17:43:19 -08:00
Nikita Smith
82169462a4
detect variable length array in upper bound and lower bound
2026-02-05 17:43:19 -08:00
Nikita Smith
2071e31f29
refactor bad read handling in DWARF parser
2026-02-05 17:43:19 -08:00
Nikita Smith
3abfb800a8
group forwarder and named exports and sort them together
2026-01-27 11:26:24 -08:00
Nikita Smith
cc43d17496
bugfix export by ordinal
2026-01-27 11:25:54 -08:00
Nikita Smith
3113db2d08
add missing retry wraps around syscalls
2026-01-26 15:34:06 -08:00
Nikita Smith
be350c4147
add cstr union field to String8 and remove char* casts from the Linux code
2026-01-22 14:04:40 -08:00
Nikita Smith
e724ee8185
use /proc/pid/exe to extract ELF header
2026-01-22 13:59:12 -08:00
Nikita Smith
e907d895c6
refactored Linux layer to use static types for the entities
2026-01-22 13:30:39 -08:00
Nikita Smith
1ecd970f31
STAP copy functions
2026-01-22 13:30:03 -08:00
Nikita Smith
7627ccf84e
move str8 list pop to the base layer
2026-01-22 13:29:45 -08:00
Nikita Smith
29a7dfedac
natvis type
2026-01-20 15:35:02 -08:00
Nikita Smith
4f95819eb0
by default linker creates a bind table
2026-01-20 15:33:00 -08:00
Nikita Smith
85df75c30b
defer import link test
2026-01-20 15:27:40 -08:00
Nikita Smith
1c0e9030fa
move lib member queue state to the link step and release it after link step is done
2026-01-20 15:27:31 -08:00
Nikita Smith
d1b055c62f
Ignore S_REGREL32 during conversion of optimized procedures.
...
In optimized builds, MSVC emits parameters as both S_LOCAL and S_REGREL32.
Most likely because their debugger relies on S_REGREL32 to format
parameters in the call stack window.
2026-01-20 14:47:03 -08:00
Nikita Smith
a51d3fb752
fix case where return local without a type was converted to a parameter
2026-01-20 14:47:01 -08:00
Nikita Smith
0c4009c328
bugfix import member queue detection
2026-01-16 18:53:03 -08:00
Nikita Smith
8f47ce7616
filter out duplicate page entries before computing the buffer size
2026-01-16 18:52:55 -08:00
Nikita Smith
4ab89cd120
set default values for unload and nobind
2026-01-16 18:41:15 -08:00
Nikita Smith
0168448924
by default commit a page for heap and stack
2026-01-16 18:40:32 -08:00
Nikita Smith
6e32a1f11c
ignore /EXPERIMENTAL
2026-01-15 18:29:37 -08:00
Nikita Smith
0c0b7ac6d3
bugfix import linking
2026-01-15 18:25:46 -08:00
Nikita Smith
2729aae982
natvis for linker types
2026-01-15 16:41:07 -08:00
Nikita Smith
de164784d0
fix typos in runtime GNU struct parser
2026-01-12 19:06:29 -08:00
Nikita Smith
70d04ac807
clean up unused process fields
2026-01-12 16:48:31 -08:00
Nikita Smith
12b53f4174
move register layout struct to Linux OS layer; use only GPR portion of
...
the layout struct for reg r/w; handle orig_rax
2026-01-12 16:48:31 -08:00
Nikita Smith
fd6c3ef0e0
move GNU and ELF specific struct readers to appropriate layers
2025-12-28 01:16:55 -08:00
Nikita Smith
f150662cc4
update logic for tracking new threads
2025-12-20 14:41:01 -08:00
Nikita Smith
13ce0cf020
fix race condition in artifact cache
2025-12-19 17:34:35 -08:00
Nikita Smith
717781e0a3
adjust cursor by delta read size
2025-12-19 17:34:14 -08:00
Nikita Smith
99fe1bc2f2
typo
2025-12-18 20:06:20 -08:00
Nikita Smith
cf849f7875
add missing GNU expr opcodes
2025-12-18 20:06:14 -08:00
Nikita Smith
cc01c04b8a
use p_vaddr for computing dynamic segment address
2025-12-18 20:05:47 -08:00
Nikita Smith
ce4d09d431
WIP DW_OP_piece
2025-12-17 17:32:03 -08:00
Nikita Smith
43cb8b7b1a
handle DW_Op_FBReg, DW_ExprOp_Deref, DW_ExprOp_BReg*, and DW_ExprOp_BRegX
2025-12-16 17:32:12 -08:00
Nikita Smith
0aea6c4e8f
finish value in register test
2025-12-16 13:49:23 -08:00
Nikita Smith
da57259379
move DWARF expressions test to the torture
2025-12-16 11:14:17 -08:00
Nikita Smith
823cbf6a72
missing func decls
2025-12-16 11:13:56 -08:00
Nikita Smith
2b4e0f8b77
WIP DWARF expression eval
...
- fixup jump offsets after expression is serialized
- use generalized machine ops for register reads
- add option to limit number of executed opcodes
2025-12-16 11:12:43 -08:00
Nikita Smith
44123e9712
extend regs with DWARF registers mappings and read/write machine ops
2025-12-16 10:47:05 -08:00
Nikita Smith
952afd49a7
generalize machine ops
2025-12-16 10:40:48 -08:00
Nikita Smith
782f87e512
WIP DWARF expression encoder
2025-12-12 17:39:56 -08:00
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