В формате отладки DWARF2 раскрутка стека поддерживается с помощью CFI (Call Frame Information), представленной в разделе .debug_frame. Это именно та таблица, в которой для каждого регистра хранится правило получения значения в предыдущем кадре. Однако все эти правила основаны на том факте, что регистры сохраняются в стеке в некотором месте.
Это не верно для получения значения указателя стека в предыдущем регистре фрейма, когда нет фрейма-указателя. В таких случаях указатель стека может быть сохранен не в стеке, а просто управляться путем увеличения и уменьшения его значения. Однако в dwarf2 (или в целом в формате dwarf) нет способа указать, что значение регистра является выражением над его текущим значением.
Итак, мой вопрос, как можно получить значение указателя стека во время разматывания стека с помощью формата отладки dwarf2 (когда указатель кадра отсутствует).
-BV