Commit Graph
105 Commits
Author SHA1 Message Date
Nikita Smith 86de8fb94c string attrib DWARF writer helper 2026-02-18 00:54:55 -08:00
Nikita Smith f9e36b5517 validate attrib-form encoding 2026-02-18 00:54:18 -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 d7ffea785f compact print abbrev data 2026-02-06 18:49:52 -08:00
Nikita Smith b0d0b6a2b2 factor out LEB128 writer 2026-02-05 19:45:34 -08:00
Nikita Smith d363c30e95 copy out generic 2026-02-05 19:43:47 -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 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 717781e0a3 adjust cursor by delta read size 2025-12-19 17:34:14 -08:00
Nikita Smith cf849f7875 add missing GNU expr opcodes 2025-12-18 20:06:14 -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 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 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 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 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