Как я могу установить контрольную точку памяти C / C в vscode?

#visual-studio-code #gdb #watch #vscode-debugger #watchpoint

#visual-studio-code #gdb #Смотреть #vscode-отладчик #контрольная точка

Вопрос:

В gdb я могу ввести watch amp;variable , затем продолжить, и gdb будет прерываться всякий раз, когда что-то записывается на этот адрес.

Я использую vscode для отладки и хочу сделать то же самое (это отличается от окна просмотра, в котором отображаются значения переменных только после достижения точки останова). Возможно ли это?

Я могу вручную добавить точку останова, нажав » » и введя amp;variable , но она никогда не становится активной и говорит, что модуль еще не загружен. Я попытался вручную ввести -exec watch amp;variable в окне консоли отладчика, но после продолжения выполнения с помощью кнопки воспроизведения он зависает (vscode думает, что программа снова запущена, но это не так).

Для этого есть некоторые проблемы с github, но они закрыты без причины:

Ответ №1:

Мне повезло с просмотром адреса. Например, если бы моя целевая переменная имела адрес 0xb79b90, я бы выполнил -exec watch *0xb79b90 в терминале gdb. Затем я бы дважды проверил, что она была добавлена в качестве аппаратной контрольной точки с -exec info watch .

После продолжения выполнения отладчик остановится с исключением, как только будет достигнута контрольная точка. vscode отобразил бы строку после изменения значения. Затем я мог бы продолжить оттуда, если это необходимо.

введите описание изображения здесь