VSCode - закрыть большое красное окно ошибки трассировки стека (python)

При использовании VSCode для написания / тестирования Python проблема возникает в режиме отладки.

Несколько обновлений назад VSCode начал показывать текущий отчет об ошибках трассировки стека в большом красном поле, которое вставляется в активное окно кода. Меня устраивало, что он не работает в терминале, но вот он - и я не могу его закрыть.

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

(1) Есть ли способ закрыть окно, оставаясь в режиме отладки? (Он автоматически закрывается, если щелкнуть красный квадрат, чтобы остановить отладку)

(2) Есть ли способ отключить эту новую функцию, возможно, в пользовательских настройках? (То есть просто оставить сообщения об ошибках в окне терминала?)

(3) ЕСЛИ НЕТ - кто-нибудь знает, была ли для этого открыта проблема с github? (Да, я искал, но не нашел, но, возможно, эта штука неправильно называется big red box - есть ли еще что-нибудь, что мне следует поискать?

Отчет об ошибке трассировки стека Big Red Box


person crashwap    schedule 17.02.2019    source источник
comment
Я думаю, это называется виджет исключений.   -  person Strategy Thinker    schedule 11.10.2019


Ответы (3)


В репозитории vscode есть открытая проблема по этому поводу.

Вот причина:

Старая версия Debugger также использовалась для отображения трассировки стека (но позже появилась ошибка, которая нарушила эту функцию) Кроме того, другие отладчики отображают трассировку стека в пользовательском интерфейсе Что касается пользовательского интерфейса с подробностями об исключении, занимающего слишком много места, это проблема восходящего потока в VS Code . У нас нет контроля над размером отображаемой информации об исключении. Отдельная проблема - фильтрация трассировки стека только для моего кода.

На самом деле это результат нового обновления расширения отладчика python.

person amirali    schedule 03.04.2019
comment
Спасибо за обнаружение этой проблемы с github. Очевидно, другие тоже жаловались на это, и исправление обещано в следующем обновлении VSCode: the fix for this is in master of ptvsd. There is a new setting that can be used to limit the number of frames, e.g., maxExceptionStackFrames: 5, VSC should pass this to ptvsd. By default ptvsd will return all frames, this is to preserve existing Visual Studio behavior. (Примечание: ptvsd - это пакет отладчика Python для использования с Visual Studio и Visual Studio Code, поддерживаемый Картик Надиг.) - person crashwap; 05.04.2019
comment
Сегодня закрыто на гитхабе. См. this и это. - person cssyphus; 11.09.2019

Вот обходной путь:

  1. В СТЕКЕ ВЫЗОВОВ выберите вторую запись, которая приведет вас к родительской функции, которая вызвала неисправную функцию.
  2. Выберите имя функции и F12 и вашу внутреннюю неисправную функцию.
  3. Наконец, перейдите к номеру строки, показанному в первой записи СТЕКА ВЫЗОВОВ, и проверьте окружающий код.

Однако, чтобы проверить текущие ПЕРЕМЕННЫЕ внутри неисправной функции, вам нужно снова щелкнуть первую запись СТЕКА ВЫЗОВОВ, что, к сожалению, также возвращает всплывающее окно с красной ошибкой.

person Peter    schedule 04.12.2020

просто снимите флажок с неперехваченного исключения или установите флажок исключения  введите описание изображения здесь

person Ian Preglo    schedule 01.04.2019