delve/pkg/dwarf
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
..
dwarfbuilder all: use "len == 0" rather than "len <= 0" when checking empty slice/string (#3439) 2023-07-13 11:30:32 -07:00
frame DWARF CFI: use a stack for restore/remember opcodes (#3480) 2023-08-23 12:56:58 -07:00
godwarf pkg,service: make receiver names consistent (#3473) 2023-08-17 14:24:43 -07:00
leb128 proc/dwarf: LEB128 encode/decode in separate pkg (#3235) 2023-01-10 12:29:58 -08:00
line dwarf/line: enable TestGrafana on Windows (#3289) 2023-02-25 14:12:46 +01:00
loclist proc/dwarf: Move util functions to dwarf package (#3252) 2023-01-16 09:20:20 -08:00
op pkg,service: make receiver names consistent (#3473) 2023-08-17 14:24:43 -07:00
reader dwarf: ignore DeclLine for function args (#3400) 2023-05-31 09:58:47 -07:00
regnum *: add ppc64le support (#2963) 2023-07-07 09:30:38 -07:00
parseutil_test.go proc/dwarf: Move util functions to dwarf package (#3252) 2023-01-16 09:20:20 -08:00
parseutil.go proc/dwarf: Move util functions to dwarf package (#3252) 2023-01-16 09:20:20 -08:00