как установить точку останова таким образом? - PullRequest
1 голос
/ 31 марта 2009

Я хочу установить точку останова и хочу, чтобы она запускалась при изменении памяти элемента (известны начальный адрес и длина) Я работаю на платформе Windows Server 2003 x64. Либо решение в Windbg, либо решение в Visual Studio подойдут. Моя цель - следить за изменением содержимого памяти.

спасибо заранее, George

Ответы [ 4 ]

4 голосов
/ 31 марта 2009

Попробуйте установить точку останова данных .

В Visual Studio:

  • Перейти к отладке >> Новая точка останова >> Новая точка останова данных
  • Введите адрес, который вы хотите просмотреть (или выражение, которое оценивает адрес; например, & foo)
  • Введите количество байтов для просмотра по этому адресу
  • Нажмите OK, запустите вашу программу в отладчике и подождите!
2 голосов
/ 31 марта 2009

Это можно сделать и в GDB. В GDB это часы по определенному адресу (я успешно установил часы по адресу членов объекта C ++ таким образом).

1 голос
/ 31 марта 2009

Вы можете установить точку останова данных , но вам нужно знать адрес интересующей вас ячейки памяти, прежде чем вы сможете установить такую ​​точку останова. Обычно я либо устанавливаю точку останова в начале моей программы, либо отлаживаю отладчик при подключении, чтобы найти адрес памяти переменной, которую я хочу отслеживать, а затем устанавливаю точку останова данных.

1 голос
/ 31 марта 2009

Не уверен насчет VS, но с помощью windbg вы можете использовать следующую команду

размер адреса W

Замените размер на длину памяти, а адрес на начальный адрес памяти.

...