Nikita Smith
ce77442d37
fix x87 register layout
2025-12-05 16:36:46 -08:00
Nikita Smith
81f08a01bc
inline anonymous members
2025-12-02 14:39:36 -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
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
Nikita Smith and Ryan Fleury
b596a6ed8a
dumper for SHT_NOTE
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
8bc1e4b21c
explicitly update stack pointer
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
3f70cd6d05
handle CFI programs without meaningful instructions
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
7616767ed7
fix CFA_Expr instruction fill
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
f2392284d5
add missing case for the register rule
2025-11-07 14:39:46 -08:00
Nikita Smith and Ryan Fleury
16232b98d8
SP from arch helper
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
9e965e345f
string format expression op when version is below 3
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
1b6e9e9d7b
parse "Signal Frame" aug flag and fill out augmentation data size
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
821af9b104
fix FDE binary search for case where PC is not exactly on first instruction
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
36b22c06b1
moved eh_frame files to dwarf layer
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
4e2c983b0f
skip leading NOP opcodes, which caused extra CFI rows to be emitted
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
dad92610de
dumper for .eh_frame_hdr and .eh_frame
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
c32d85ea2d
DWARF helper
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
da38f266d9
parser for .eh_frame versions of CIE and FDE and new helper for
...
mapping PC -> CFI Row
2025-11-07 14:39:45 -08:00
Nikita Smith and Ryan Fleury
ecbce1efdf
add TR and LDTR registers
2025-11-07 14:39:45 -08:00
Nikita Smith
43fcc21490
clang build fixes
2025-10-10 10:19:47 -07:00
Nikita Smith
061b5c5955
added CFA instruction parser, interpreter, and a dumper
2025-10-10 10:09:46 -07:00
Nikita Smith
e1986c9594
clang fixes
2025-10-07 20:37:00 -07:00
Nikita Smith
401d7b47df
factor out C++ ABI exception handling
2025-10-07 20:28:06 -07:00
Nikita Smith
3560c7d3e7
dump CIE and FDE
2025-10-07 18:16:32 -07:00
Nikita Smith
7cf3eaf73f
parsers for CIE and FDE
2025-10-07 18:16:31 -07:00
Nikita Smith
62ae5ca3f5
stringify format and cfa opcodes enums
2025-10-07 18:16:31 -07:00
Nikita Smith
da0028033d
changed dumper to print .debug_info in more compact form
2025-10-03 20:10:09 -07:00
Nikita Smith
b1b83c4e3d
bugfix const64 interp
2025-10-03 17:16:45 -07:00
Nikita Smith
1264115d13
define push and pop counts for expression opcodes
2025-10-02 18:19:42 -07:00
Nikita Smith
0f9df9bc40
change opcode type to U8
2025-10-02 18:19:42 -07:00
Nikita Smith
0e9739f964
expression parser
2025-10-02 18:19:42 -07:00
Nikita Smith
da74b8595c
add operand count for expression opcodes
2025-10-02 18:19:42 -07:00
Ryan Fleury
7707ba1d60
dwarf debug info option in builds, fix heuristic to try to load debug info from exe itself
2025-10-01 15:36:36 -07:00
Nikita Smith
8bf0a3de5b
split conversion pass into three (types, udts, and symbols) and use
...
new locations chunk list
2025-09-29 00:11:27 -07:00
Nikita Smith and Ryan Fleury
6a3d7e65f3
remove year from the copyright
2025-09-05 15:19:31 -07:00
Nikita Smith
086d774b8b
fix ELF compressed header and skip duplicate sections
2025-08-12 14:10:13 -07:00
Ryan Fleury
122c27eabe
do not funnel non-dwarf sections in dwarf input prep pass
2025-07-28 16:22:23 -07:00
Ryan Fleury
48f5df2523
cleanup pass over elf parsing; base addr calculation?
2025-07-28 16:13:45 -07:00
Ryan Fleury
ce9f7f691a
always-refresh dev option
2025-06-20 10:55:45 -07:00
Ryan Fleury
327f0f128a
more parseability coverage on rdi dumping
2025-06-19 21:15:16 -07:00
Ryan Fleury
fa242b3d80
#if 0 broken code; fix clang build
2025-06-19 15:26:56 -07:00
Ryan Fleury
b28b730788
plug in dwarf dumping to radbin
2025-06-19 13:37:28 -07:00
Ryan Fleury
056942a792
remaining dwarf dumping coverage
2025-06-19 11:00:24 -07:00
Ryan Fleury
8eab0e16b8
pass over .debug_abbrev dump
2025-06-19 10:41:42 -07:00