Глобальная переменная изменена, но точка останова памяти не достигнута - PullRequest
3 голосов
/ 02 марта 2010

У меня есть переменная bool, которая должна быть истинной, но иногда она имеет значение false. Я установил точку останова памяти, чтобы увидеть, что это меняет. К моему удивлению, точка останова не сработала, но переменная снова стала ложной.

Что может изменить память без перехвата точки останова памяти?

1 Ответ

4 голосов
/ 02 марта 2010

Несколько мыслей.

  1. Если вы передадите значение bool в функцию ядра и ТО изменит его (или, возможно, вызов функции ядра перезапишет память, потому что он вызывается неправильно), то это не сработаетточка останова данных.

  2. Если вы используете несколько процессов, а другой процесс, который не отлаживается, записывает в эту область памяти, то у вас не будет срабатывать точка останова.

  3. (Правка) Как указано в комментариях, DMA в память, на которой включена аппаратная точка останова, также не будет обнаружена.

Я думаю,что вы где-то не проверяете размер буфера надлежащим образом, и вас поражает (1), возможно, при чтении данных из файла?

...