В Visual GDB, как установить прерывание при изменении переменной?

#c #visual-studio

Вопрос:

Каким-то образом содержимое ReadEncoder изменяется. Можем ли мы установить «точку останова записи» на адресе памяти ?

Используя C, программирование встроенного микроконтроллера в Visual GDB

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

1. да, вы можете: devblogs.microsoft.com/cppblog/data-breakpoints-15-8-update

2. Не могу заставить это работать, используя «C», не уверен, что это поддерживается… Я программирую микроконтроллер с помощью GDB

3. Visual Studio и GDB-это две совершенно разные вещи. Пожалуйста, исправьте название вашего вопроса. В GDB есть команда «смотреть», прочитайте руководство .

Ответ №1:

после прочтения руководства,

Мне пришлось открыть консоль GDB и ввести эту команду:

 watch ReadEncoder 
 

GDB вернулся :

 watch ReadEncoder 
amp;"watch ReadEncoder n"
Hardware watchpoint 5: ReadEncoder
=breakpoint-created,bkpt={number="5",type="hw watchpoint",disp="keep",enabled="y",what="ReadEncoder",thread-groups=["i1"],times="0",original-location="ReadEncoder"}
OK
 

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

Ответ №2:

Другой метод-установить «Точку останова данных» в Visual Studio.

Приостановить выполнение

Отладка -> Windows ->> Точки останова ->>> Новая точка останова данных введите «Кодер чтения» там

и это тоже сработало. ( в соответствии с первоначальным вопросом)