Commit Graph
16 Commits
Author SHA1 Message Date
Nikita Smith 952afd49a7 generalize machine ops 2025-12-16 10:40:48 -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 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 4e2c983b0f skip leading NOP opcodes, which caused extra CFI rows to be emitted 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 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
Ryan Fleury 94b969f203 copyright year 2025-06-02 14:13:57 -07:00
Nikita Smith c57b5fcd6d appease clang 2025-03-27 15:37:27 -07:00
Nikita Smith 13352751ec moved DWARF parser to use str8_deserial-style API, added to the parser
layer functionality for interpreting different types of attributes,
added support for location lists, and API to enable parsing tags with
abstract origin.
2025-03-17 10:40:59 -07:00
Nikita Smith 1d441bac30 minor fixes and renames in DWARF enums 2025-02-25 14:41:16 -08:00
Nikita Smith 98b9427446 dumper for Dwarf 2025-01-08 03:26:04 -08:00
Nikita Smith b27b783e6f Dwarf parser WIP
Copied the parser from internal repo and integrated with the base layer
(not tested)

Parser uses based/range pattern for which we have an alternative in
string layer (str8_deserial_*)
2025-01-08 03:26:04 -08:00