Выполнить код в строке <x>в GDB? - PullRequest
2 голосов
/ 25 мая 2011

В Visual Studio вы можете щелкнуть правой кнопкой мыши любой код и выбрать «Установить следующий оператор», и Visual Studio вместо этого начнет выполнять код оттуда.Это действительно полезно, когда вы думаете, "подожди, что ??"и хотите, чтобы последний бит кода выполнялся снова, без необходимости перезапуска с нуля.

Имеет ли GDB аналогичную функциональность?Если я заметил, что, например, вызов функции дал неожиданное значение, как я могу сделать вызов функции снова?

Это gdb в xcode 3.2.5 в Mac OS X.

Ответы [ 2 ]

2 голосов
/ 26 мая 2011

Используйте команду gdb jump.Подробнее здесь .

Если вы просто хотите повторно выполнить функцию foo(int) с некоторым значением, вам вовсе не обязательно делать то, что вы просили.Должно работать следующее (при подсказке (gdb)):

break foo
print foo(42)
0 голосов
/ 26 мая 2011

спасибо Employed Russian за ссылку.Я также нашел это, хотя у меня нет достаточно новой версии GDB для его использования:

http://www.sourceware.org/gdb/wiki/ReverseDebug

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...