Как контролировать переменные в GDB и регистрировать его, если он соответствует определенным условиям?
Я хотел бы знать, есть ли способ отслеживать значение переменной до тех пор, пока, например, счетчик не достигнет значения и не запустит вывод значения переменной во время каждого значения счетчика?
Ответ 1
Установите точку наблюдения на счетчике:
(gdb) watch var
И сделайте эту точку наблюдения условной:
(gdb) cond <watchpoint_number> var>=value
Если вы хотите войти в файл:
(gdb) set logging file <filename>
(gdb) set logging on
По умолчанию gdb записывается в gdb.txt
Ответ 2
Вы можете использовать watchpoints, чтобы gdb отслеживал значение переменной и прерывал выполнение программы при изменении значения. Как только выполнение остановлено, вы можете использовать набор команд gdb для проверки и печати значения. Я не уверен, что вы можете script gdb делать это автоматически каждый раз, когда он ломается.