Связать команды в gdb для наблюдения за стеком выполнения

#c #c #assembly #gdb

#c #c #сборка #gdb

Вопрос:

Я ищу программу для наблюдения за стеком выполнения программы на c / c . В настоящее время я использую gdb для этой цели.

Следующая команда показывает содержимое стека:

 x/12xg $rsp
 

для выполнения инструкции за инструкцией я использую

 stepi
 

Можно ли объединить эти команды с командами, чтобы я мог просматривать ассемблерный код и наблюдать за стеком? Если у вас есть другое возможное решение / программа, я с нетерпением жду этого.

Комментарии:

1. Это может зависеть от того, что вы хотите сделать («почему?»). Вы могли бы устанавливать точки останова в записях функций, вы могли бы использовать операторы печати для получения вашей информации и т.д.

2. Вы можете использовать display gdb или даже автоматизировать его, чтобы он проходил через всю вашу программу.

3. @Jester, к сожалению display x/12xg $rsp , не работает?

4. display/12xg $rsp должен.

Ответ №1:

Вы можете комбинировать команды, используя define , например:

 (gdb) define mystep
> stepi
> x/whatever $rsp
> end
 

Теперь mystep следует выполнить шаг, а затем сбросить некоторую память.