Кнопки панели инструментов отладчика кода VS отключены во время сеанса отладки

#debugging #visual-studio-code

Вопрос:

Я начинающий программист на языке Си. В настоящее время в моей 64-разрядной системе Windows установлена Visual Studio версии 1.61 от сентября 2021 года. Я также установил MingW64 и настроил переменные среды для компиляции и отладки с целью написания, отладки и запуска моих программ на языке си.

Я смог писать и запускать свои программы без каких-либо проблем. Я заметил, что всякий раз, когда я хочу отладить свою программу, на панели инструментов отладки, которая находится сверху, кнопки отключены, и «желтая стрелка»не указывает ни на одну строку.

Я изменил файл «launch.json», в котором установил следующее:

 "stopAtEntry": true,  

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

Я новичок, и я нахожу VS-код довольно неприятным, я был бы признателен за ваш вклад и предложения. Спасибо

Ответ №1:

ОБНОВЛЕНИЕ: Я решил эту проблему.

Итак, оказывается, что с моим отладчиком все в порядке, и он вел себя так, как должен. Я заметил, что он всегда будет вести себя так всякий раз, когда компилятор gcc должен был выполнить строку в том числе scanf() . Регистры и переменные в списке наблюдения внезапно станут «недоступными», это связано с тем, что компилятор ждал ввода данных пользователем.

Поскольку в коде VS не отображалась запущенная программа в PowerShell, я изменил некоторые конфигурации «launch.json» на следующие:

 "externalConsole": true,  

Это позволяет открывать командную строку, отображать запущенную программу и позволяет вводить данные пользователем.

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

 "stopAtEntry": false,  

Я установил для этой конфигурации значение false, потому что не хотел, чтобы отладчик начинался в начале программы.

Это, конечно, было неприятно, но после того, как я нашел решение этой «проблемы», я готов поспорить, что мои уровни эндорфина и окситоцина зашкаливают.

Очень волнующе, это то, что мне больше всего нравится в решении проблем.

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

1. Рад видеть, что вы решили свою проблему. Однако вам не нужно было устанавливать "externalConsole": true . Если вы сохраняете значение false, используется встроенный терминал, что ИМО удобнее. Возможно, вы захотите попробовать это

2. Отмеченный. Спасибо за предложение