Я не понимаю, как раскрутка стека в dwarf2 обеспечивает надежное восстановление аргументов в некоторых очень базовых сценариях ABI (Application Binary Interface).Рассмотрим ABI, который говорит, что первые три аргумента должны быть в регистрах и лежать в стеке.Как я понимаю, механизм разматывания стека dwarf2 гарантирует, что если таблица CFI заполнена правильно, можно получить значения регистров в точке вызова текущего кадра.Это, однако, не позволяет вам перейти к прологу вызывающей стороны и узнать, что содержалось в регистрах аргументов.Итак, я думаю, что должен быть способ найти значения регистров даже в одном и том же кадре в разных точках (таблица, закодированная в разделе .debug_frame, дает только местоположения в предыдущем кадре).
Есть личто-то не так в моем понимании?Как работают отладчики на основе отладочных форматов dwarf2 в таких случаях?Для архитектур, в которых аргументы передаются в стеке, не возникнет проблем с восстановлением значений во всех точках программы (для любого кадра).