delve/pkg/dwarf/frame
Javier Honduvilla Coto 908876d6aa
DWARF CFI: use a stack for restore/remember opcodes (#3480)
Implementing the `DW_CFA_remember_state` and `DW_CFA_restore_state`
according to the DWARF specification requires us to create a stack that
can store an arbitrary number of elements, that is, there could be
multiple "pushes" before "popping" them.

From the 5th revision of the spec [0]:

> 6.4.2.4 Row State Instructions
> DW_CFA_remember_state
> 	The DW_CFA_remember_state instruction takes no operands. The required
>	action is to push the set of rules for every register onto an implicit stack.
>	DW_CFA_restore_state
> DW_CFA_restore_state
>	The DW_CFA_restore_state instruction takes no operands. The required action
>	is to pop the set of rules off the implicit stack and place them in the
>	current row.

- [0]: https://dwarfstd.org/doc/DWARF5.pdf

Signed-off-by: Francisco Javier Honduvilla Coto <javierhonduco@gmail.com>
2023-08-23 12:56:58 -07:00
..
testdata Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
entries_test.go pkg/dwarf/frame: fix FrameDescriptionEntries's Append (#3433) 2023-07-05 08:48:33 -07:00
entries.go pkg/dwarf/frame: fix FrameDescriptionEntries's Append (#3433) 2023-07-05 08:48:33 -07:00
parser_test.go dwarf/frame,proc: use eh_frame section (#2344) 2021-03-04 20:17:00 -08:00
parser.go proc/dwarf: Move util functions to dwarf package (#3252) 2023-01-16 09:20:20 -08:00
table.go DWARF CFI: use a stack for restore/remember opcodes (#3480) 2023-08-23 12:56:58 -07:00