Commit Graph
75 Commits
Author SHA1 Message Date
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 SmithandRyan Fleury b596a6ed8a dumper for SHT_NOTE 2025-11-07 14:39:46 -08:00
Nikita SmithandRyan Fleury 8bc1e4b21c explicitly update stack pointer 2025-11-07 14:39:46 -08:00
Nikita SmithandRyan Fleury 3f70cd6d05 handle CFI programs without meaningful instructions 2025-11-07 14:39:46 -08:00
Nikita SmithandRyan Fleury 7616767ed7 fix CFA_Expr instruction fill 2025-11-07 14:39:46 -08:00
Nikita SmithandRyan Fleury f2392284d5 add missing case for the register rule 2025-11-07 14:39:46 -08:00
Nikita SmithandRyan Fleury 16232b98d8 SP from arch helper 2025-11-07 14:39:45 -08:00
Nikita SmithandRyan Fleury 9e965e345f string format expression op when version is below 3 2025-11-07 14:39:45 -08:00
Nikita SmithandRyan Fleury 1b6e9e9d7b parse "Signal Frame" aug flag and fill out augmentation data size 2025-11-07 14:39:45 -08:00
Nikita SmithandRyan 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 SmithandRyan Fleury 36b22c06b1 moved eh_frame files to dwarf layer 2025-11-07 14:39:45 -08:00
Nikita SmithandRyan Fleury 4e2c983b0f skip leading NOP opcodes, which caused extra CFI rows to be emitted 2025-11-07 14:39:45 -08:00
Nikita SmithandRyan Fleury dad92610de dumper for .eh_frame_hdr and .eh_frame 2025-11-07 14:39:45 -08:00
Nikita SmithandRyan Fleury c32d85ea2d DWARF helper 2025-11-07 14:39:45 -08:00
Nikita SmithandRyan 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 SmithandRyan 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 SmithandRyan 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