Трассировка изменений в переменные автоматически - PullRequest
6 голосов
/ 27 октября 2010

Я отлаживаю программу на C (GCC и GDB в Linux и Visual Studio в Windows), которая дает разные результаты на двух разных архитектурах.Я хотел бы сравнить выполнение для каждой архитектуры, отслеживая изменения в значениях, хранящихся в переменных, чтобы найти различия.

file main.c, line 234. Variable A changes from 34 to 23
file main.c, line 236. Variable B changes from 0 to 2
.....
etc.

Может ли компилятор быть проинструктирован о том, как использовать этот инструмент, не засоряя вручнуюисточник с printf заявлениями?

Ответы [ 11 ]

0 голосов
/ 27 октября 2010

Вы можете указать gdb прерывать всякий раз, когда какая-либо инструкция изменяет вашу переменную.IIRC команда «смотреть».Например, «смотреть A» или «смотреть» *(int*)0x123456'.

И вы даже можете сказать, что он сломается, когда кто-то читает это с помощью 'rwatch'.

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