обратный ход GDB с помощью указателей
Иногда существует небольшое повреждение стека, которое приводит к тому, что GDB не может выполнить «обратную трассировку». Я создал приведенный ниже макрос GDB (x86-64, его можно легко заставить работать для x86), который зависит от отключения omit-frame-pointer ( т.е. -fno-omit-frame-pointer) и показывает мне функции в обратном следе. Однако мне бы хотелось, чтобы он также отображал значения параметров и в идеале мог выбрать один из этих кадров. (то есть что-то типа "frame 0x0123456789ABCDEF").
define et
set $frameptr = $rbp
while $frameptr != 0
set $oldbp = *((void**)($frameptr+8))
print $frameptr
print $oldbp
info symbol $oldbp
set $frameptr = *((void**)($frameptr))
end
end