#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 отобразил бы строку после изменения значения. Затем я мог бы продолжить оттуда, если это необходимо.