Только мой код visual studio что это
Я хочу также отлаживать библиотеки и не вижу настройки, позволяющей отключить это где-либо в VSCode.
Можно ли отключить?
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно.
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей.
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то.
Ответы 5
Для этого вам необходимо изменить файл launch.json . Внутри файла launch.json вы должны установить "justMyCode" на false .
Как описано здесь. (Меня указали на эту ссылку через эта почта на сайте Visual Studio Code.)
Это для полной версии Visual Studio, а не для кода Visual Studio.
@ Revolt64 Извините, я неправильно это понял. Я отредактировал свой ответ для кода Visual Studio.
Обновлено: у меня это уже было в моем файле launch.json, но из-за того, что он находился внизу массива, и я случайно добавил запятую после строки justMyCode, это не сработало (это то, что я получаю за простую ошибку) . После удаления запятой работает. Спасибо за помощь!
justMyCode не является допустимой конфигурацией для launch.json в vscode
Чтобы избежать повторяющихся исключений перед желаемой точкой останова, снимите флажок Raised Exceptions .
Просто добавить "justMyCode": false в launch.json не получится. Вам нужно добавить отдельный конфиг в launch.json , как показано ниже. К вашему сведению, каждый <> представляет собой конфигурацию.
Спасибо! У меня была эта проблема. Я поставил только свой код «false», но я не мог видеть библиотеки фреймворков. Итак, я изменил конфигурацию запуска, как вы сказали et voilà
У меня это не работает. Он говорит Собственность не разрешена для justMyCode (я использую код Visual Studio 2018)
Привет, я использовал vscode 2019 в то время, и он все еще работает в vscode 2020.
В документации Visual Studio Code есть раздел «Пропуск неинтересного кода».
VS Code Node.js debugging has a feature to avoid source code that you don't want to step through (AKA 'Just My Code').
This feature can be enabled with the skipFiles attribute in your launch configuration. skipFiles is an array of glob patterns for script paths to skip.
В свой файл launch.json вы должны добавить (или любой другой файл, который хотите пропустить):
Если вы специально отлаживаете модульные тесты Python, добавление "justMyCode": "false" в вашу обычную конфигурацию не подходит, вам нужно добавить еще один в свой launch.json с "request": "test" :
Это как-то неловко. Я только что понял, что мой ответ почти такой же, как и выше. С моими усталыми глазами, когда я писал, я не мог отличить мою конфигурацию от той, что был в этом ответе, а затем задавался вопросом, почему это не сработает. Итак, еще раз хочу подчеркнуть разницу: "request": "test"
VSCode 1.60 жаловался на метод "request": "test" , предложенный другими.
Но мне нужно было добавить новый раздел ниже моей существующей конфигурации, чтобы заставить "justMyCode": false работать.
Вот что у меня сработало:
Добавление цель представляется важным.
Знаешь, ты спас мне сегодня вечер. :) Надеюсь, у вас будут отличные выходные. («Назначение» было именно той конфигурацией, которую я только что искал - спасибо!)
указывает поддержку компилятора для отладки машинного Только мой код в отладчике Visual Studio. этот параметр поддерживает параметры пользователя, которые позволяют Visual Studio выполнять шаг с обходом системы, платформы, библиотеки и других вызовов, не являющихся пользователями, а также сворачивать эти вызовы в окне стек вызовов. параметр компилятора доступен, /JMC начиная с Visual Studio 2017 версии 15,8.
Синтаксис
Комментарии
параметры Только мой код Visual Studio указывают, будут ли отладчики Visual Studio шагами с системой, платформой, библиотекой и другими вызовами, не являющимися пользователями. /JMC Параметр компилятора обеспечивает поддержку только мой код отладки в собственном коде C++. Если /JMC параметр включен, компилятор вставляет вызовы в вспомогательную функцию, __CheckForDebuggerJustMyCode в прологе функции. вспомогательная функция предоставляет обработчики, поддерживающие Visual Studio отладчик Только мой код операций шага. чтобы включить Только мой код в отладчике Visual Studio, в строке меню выберите сервис>параметры, а затем установите параметр отладка>General>enable Только мой код.
/JMC Параметр требует, чтобы код собыл ссылкой на библиотеку времени выполнения C (CRT), которая предоставляет __CheckForDebuggerJustMyCode вспомогательную функцию. Если проект не связан с CRT, может появиться ошибка компоновщика LNK2019: неразрешенный внешний символ __CheckForDebuggerJustMyCode. Чтобы устранить эту ошибку, либо свяжите ее с CRT, либо отключите /JMC параметр.
Если этот /JMC параметр включен, PDB-файл снабжается дополнительными сведениями о номере строки. в версиях до Visual Studio 2019 версии 16,8 эта информация может появиться в отчетах о покрытии кода, происходящих в строке 15732480 (0xF00F00) или 16707566 (0xFEEFEE). Эти вымышленные номера строк используются в качестве маркеров для отделения пользовательского кода от кода, не являющегося пользовательским. Чтобы включить код, не являющийся пользователем, в отчетах о покрытии кода без этих непредусмотренных номеров строк, выполните сборку кода с помощью /JMC- параметра.
По умолчанию /JMC параметр компилятора отключен. однако начиная с Visual Studio 2017 версии 15,8 этот параметр включен в большинстве Visual Studio шаблонов проектов. Чтобы явно отключить этот параметр, используйте /JMC- параметр в командной строке. в Visual Studio откройте диалоговое окно страницы свойств проекта и измените свойство поддержка Только мой код отладка на странице свойства> конфигурацииC/C++>общие на нет.
дополнительные сведения см. в разделе c++ Только мой код in укажите, следует ли выполнять отладку только пользовательского кода с помощью Только мой код в Visual Studio, а также запись блога группы Visual C++, в которой указывается Только мой код C++ Visual Studio.
Установка данного параметра компилятора в среде разработки Visual Studio
Перейдите на страницу свойств Свойства конфигурации>C/C++>Общие.
Только мой код — это функция отладки Visual Studio, которая автоматически обходит вызовы системы, платформы и другой непользовательский код. В окне Стек вызовов функция "Только мой код" сворачивает такие вызовы во фреймы [Внешний код] .
Включение или отключение режима "Только мой код"
Для большинства языков программирования режим "Только мой код" включен по умолчанию.
- Чтобы включить или выключить режим "Только мой код" в Visual Studio, в разделе Средства >Параметры (или Отладка >Параметры) >Отладка >Общие установите или снимите флажок Включить только мой код.
Параметр Включить только мой код является глобальным параметром, который применяется ко всем проектам Visual Studio на всех языках.
отладка "Только мой код"
Во время сеанса отладки в окне Модули отображаются модули кода, которые отладчик воспринимает как "Мой код" (т. е. пользовательский код), а также состояние загрузки их символов. Дополнительные сведения см. в разделе Дополнительные сведения о присоединении отладчика к приложению.
В окнах Стек вызовов и Задачи функция "Только мой код" сворачивает непользовательский код в затененный аннотированный фрейм кода, помеченный как [External Code] .
Открывать окна Модули, Стек вызовов и Задачи, как и большинство других окон отладки, можно только в сеансе отладки. В сеансе отладки выберите окна, которые нужно открыть, в разделе Отладка > Окна.
Чтобы просмотреть код в свернутом фрейме [Внешний код] , щелкните правой кнопкой мыши окно Стек вызовов или Задачи и выберите в контекстном меню пункт Показать внешний код. Вместо фрейма [Внешний код] появятся развернутые строки внешнего кода.
Параметр Показать внешний код является текущим пользовательским параметром профилировщика, который применяется ко всем проектам на всех языках, открываемых этим пользователем.
Если дважды щелкнуть строку развернутого внешнего кода в окне Стек вызовов, строка вызывающего кода в исходном коде будет выделена зеленым. Для библиотек DLL или других модулей, которые не найдены или не загружены, может открыться страница, сообщающая, что символ или источник не найден.
На то, какой код отладчик посчитает пользовательским, также влияют три следующих атрибута.
-
сообщает отладчику, что код, к которому применен этот атрибут, не является пользовательским. скрывает код от отладчика, даже если режим "Только мой код" включен. указывает отладчику пошагово пройти через код, к которому применен этот атрибут, а не выполнять шаг с заходом в процедуры.
- Если выбрать Отладка >Шаг с заходом (или нажать клавишу F11) в непользовательском коде, будет выполнен шаг с обходом процедур и переход на следующую строку пользовательского кода.
- Если выбрать Отладка >Шаг с выходом (или нажать клавиши Shift+F11) в непользовательском коде, будет выполнен переход на следующую строку пользовательского кода.
Если отладчик прерывается в непользовательском коде (например, вы выбрали Отладка > Прервать все и приостановили выполнение в непользовательском коде), появляется окно Нет источника. Затем вы можете использовать команду Отладка > Шаг, чтобы перейти к следующей строке пользовательского кода.
При возникновении необработанного исключения в непользовательском коде отладчик прерывается на той строке в пользовательском коде, где было создано исключение.
Если для этого исключения включена первичная обработка исключения, вызывающая строка пользовательского кода в исходном коде выделяется зеленым цветом. В окне Стек вызовов отображается аннотированный фрейм с меткой [Внешний код] .
"Только мой код" в C++
Функция "Только мой код" для пошагового выполнения кода поддерживается начиная с Visual Studio 2017 версии 15.8. Чтобы использовать эту функцию, необходимо включить параметр компилятора /JMC (отладка "Только мой код"). В проектах C++ этот параметр включен по умолчанию. Для окна Стек вызовов и поддержки стека вызовов в режиме "Только мой код" параметр /JMC не требуется.
Чтобы код мог быть классифицирован как пользовательский, отладчик должен загрузить PDB-файл для двоичного файла, содержащего пользовательский код (это можно проверить в окне Модули).
В отношении функционирования стека вызовов, например в окне Стек вызовов, в режиме "Только мой код" в C++ непользовательским кодом считаются только следующие функции.
- Функции с открытой исходной информацией в файле символов.
- Функции, в которых файлы символов указывают, что исходный файл, соответствующий кадру стека, отсутствует.
- Функции, указанные в файлах *.natjmc в папке %VsInstallDirectory%\Common7\Packages\Debugger\Visualizers.
Что касается пошагового выполнения кода, в режиме "Только мой код" в C++ непользовательским кодом считаются только следующие функции.
- Функции, для которых соответствующий PDB-файл не был загружен в отладчик.
- Функции, указанные в файлах *.natjmc в папке %VsInstallDirectory%\Common7\Packages\Debugger\Visualizers.
Для поддержки пошагового выполнения кода в режиме "Только мой код" код C++ должен быть скомпилирован с использованием компиляторов MSVC в Visual Studio 15.8 предварительной версии 3 или более поздней версии, и должен быть включен параметр компилятора /JMC (он включен по умолчанию). Дополнительные сведения см. в разделе Настройка поведения стека вызовов и пошагового выполнения кода в C++ и в этой записи блога. Если код был скомпилирован с использованием более старого компилятора, файлы .natstepfilter являются единственным способом настройки пошагового выполнения кода, который не зависит от режима "Только мой код". См. раздел Настройка поведения пошагового выполнения кода C++.
При отладке в C++:
- Если выбрать Отладка >Шаг с заходом (или нажать клавишу F11) в непользовательском коде, будет выполнен шаг с обходом процедур и переход на следующую строку пользовательского кода.
- Если выбрать Отладка >Шаг с выходом (или нажать клавиши Shift+F11) в непользовательском коде, будет выполнен переход на следующую строку пользовательского кода.
Если отладчик прерывается в непользовательском коде (например, вы выбрали Отладка > Прервать все и приостановили выполнение в непользовательском коде), пошаговое выполнение продолжается в непользовательском коде.
Если отладчик обнаруживает исключение, он останавливается на этом исключении, независимо от того, в каком коде оно находится — пользовательском или непользовательском. Параметры Не обработанные пользователем в диалоговом окне Параметры исключения игнорируются.
Настройка поведения стека вызовов и пошагового выполнения кода в C++
В проектах C++ можно указывать модули, исходные файлы и функции, которые окно Стек вызовов будет считать непользовательским кодом. Для этого нужно указать их в файлах *.natjmc. Эта настройка также применяется к пошаговому выполнению кода, если используется последняя версия компилятора (см. раздел"Только мой код" в C++).
- Чтобы указать непользовательский код для всех пользователей компьютера с Visual Studio, добавьте файл .natjmc в папку %VsInstallDirectory%\Common7\Packages\Debugger\Visualizers.
- Чтобы указать непользовательский код для отдельного пользователя, добавьте файл .natjmc в папку %USERPROFILE%\My Documents\\Visualizers.
Файл .natjmc является XML-файлом и имеет следующий синтаксис.
Атрибуты элементов модуля
Атрибуты элементов файла
Атрибут | Описание |
---|---|
Name | Обязательный. Полный путь к файлу или файлам исходного кода, который необходимо считать внешним кодом. При задании пути можно использовать следующие подстановочные знаки Windows: ? и * . |
Атрибуты элементов функций
Атрибут | Описание |
---|---|
Name | Обязательный. Полное имя функции, которую необходимо рассматривать как внешний код. |
Module | Необязательный элемент. Имя модуля или полный путь к модулю, содержащему эту функцию. Этот атрибут можно использовать для устранения неоднозначности функций с одинаковыми именами. |
ExceptionImplementation | Если задано значение true , стек вызовов отображает функцию, которая создала исключение, а не данную функцию. |
Настройка поведения пошагового выполнения кода в C++ независимо от параметров режима "Только мой код"
В проектах C++ можно указать функции, для которых будут выполняться шаги с обходом, внеся их в файлы *.natstepfilter как непользовательский код. Функции, указанные в файлах *.natstepfilter, не зависят от параметров режима "Только мой код".
- Чтобы указать непользовательский код для всех локальных пользователей Visual Studio, добавьте файл .natstepfilter в папку %VsInstallDirectory%\Common7\Packages\Debugger\Visualizers.
- Чтобы указать непользовательский код для отдельного пользователя, добавьте файл .natstepfilter в папку %USERPROFILE%\My Documents\\Visualizers.
Файл .natstepfilter является XML-файлом и имеет следующий синтаксис.
"Только мой код" в JavaScript
Режим "Только мой код" в JavaScript управляет пошаговым выполнением и отображением стека вызовов путем распределения кода по одной из следующих классификаций:
Отладчик JavaScript классифицирует код как пользовательский или непользовательский в следующем порядке.
Классификации по умолчанию.
- Скрипт, который выполняется путем передачи строки в предоставленную хостом функцию eval , классифицируется как MyCode.
- Скрипт, который выполняется путем передачи строки в конструктор Function , классифицируется как LibraryCode.
- Скрипт в ссылке платформы, например WinJS или SDK Azure, классифицируется как LibraryCode.
- Скрипт, который выполняется путем передачи строки в функцию setTimeout , setImmediate или setInterval , классифицируется как UnrelatedCode.
Классификации, указанные для всех проектов JavaScript Visual Studio в файле %VSInstallDirectory%\JavaScript\JustMyCode\mycode.default.wwa.json.
Классификации в файле mycode.json текущего проекта.
Каждый шаг классификации переопределяет предыдущие шаги.
Весь остальной код классифицируется как MyCode.
Вы можете изменить классификации по умолчанию и классифицировать определенные файлы и URL-адреса как пользовательский или непользовательский код путем добавления файла .json с именем mycode.json в корневую папку проекта JavaScript. См. раздел Настройка режима "Только мой код" в JavaScript.
При отладке в JavaScript:
- если функция является непользовательским кодом, выбор в меню Отладка >Шаг с заходом (или нажатие клавиши F11) действует так же, как выбор Отладка >Шаг с обходом (или нажатие F10);
- если шаг начинается в непользовательском коде (LibraryCode или UnrelatedCode), пошаговое выполнение временно работает так, как если бы режим "Только мой код" не был включен. После возвращения в пользовательский код пошаговое выполнение в режиме "Только мой код" возобновляется.
- Когда шаг в пользовательском коде приводит к выходу из текущего контекста выполнения, отладчик останавливается в следующей выполненной строке пользовательского кода. Например, если обратный вызов выполняется в коде LibraryCode, отладчик продолжает выполнение, пока не будет выполнена следующая строка кода пользователя.
- Использование пункта Шаг с выходом (или сочетания клавиш Shift+F11) приводит к остановке на следующей строке пользовательского кода.
В установленные в коде точки останова переход выполняется всегда, но код классифицируется.
- Если ключевое слово debugger обнаруживается в коде LibraryCode, отладчик всегда останавливается.
- Если ключевое слово debugger обнаруживается в коде UnrelatedCode, отладчик не останавливается.
Если необработанное исключение встречается в коде MyCode или LibraryCode, отладчик всегда останавливается.
Если необработанное исключение встречается в коде UnrelatedCode, и MyCode или LibraryCode находится в стеке вызовов, отладчик останавливается.
Если для данного исключения включена первичная обработка и это исключение возникает в коде LibraryCode или UnrelatedCode:
- Если исключение обрабатывается, отладчик не останавливается.
- Если исключение не обрабатывается, отладчик останавливается.
Настройка режима "Только мой код" в JavaScript
Чтобы разделить пользовательский и непользовательский код для отдельного проекта Visual Studio, можно добавить файл .json с именем mycode.json в корневую папку проекта.
Спецификации в этом файле переопределяют классификации по умолчанию и файл mycode.default.wwa.json. В файле mycode.json не нужно перечислять все пары "ключ-значение". Значения MyCode, Libraries и Unrelated могут быть пустыми массивами.
В файлах Mycode.json используется следующий синтаксис.
"Eval", "Function" и "ScriptBlock"
Пары "ключ-значение" Eval, Function и ScriptBlock определяют, как классифицируется динамически создаваемый код:
name | Описание |
---|---|
Eval | Скрипт, который выполняется путем передачи строки предоставленной хостом функции eval . По умолчанию скрипт Eval классифицируется как MyCode. |
Function | Скрипт, который выполняется путем передачи строки конструктору Function . По умолчанию скрипт Function классифицируется как LibraryCode. |
ScriptBlock | Скрипт, который выполняется путем передачи строки функциям setTimeout , setImmediate или setInterval . По умолчанию скрипт ScriptBlock классифицируется как UnrelatedCode. |
Можно изменить это значение на одно из следующих ключевых слов:
- MyCode классифицирует скрипт как MyCode.
- Library классифицирует скрипт как LibraryCode.
- Unrelated классифицирует скрипт как UnrelatedCode.
"MyCode", "Libraries" и "Unrelated"
Пары "ключ-значение" MyCode, Libraries и Unrelated определяют URL-адреса или файлы, которые нужно включить в классификацию:
name | Описание |
---|---|
MyCode | Массив URL-адресов или файлы, которые классифицируются как MyCode. |
Libraries | Массив URL-адресов или файлы, которые классифицируются как LibraryCode. |
Unrelated | Массив URL-адресов или файлы, которые классифицируются как UnrelatedCode. |
Строка URL-адреса или файла может содержать один или несколько символов * , соответствующих любому количеству символов (от 0 и больше). * — то же самое, что и регулярное выражение .* .
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Только мой код — это функция отладки, которая автоматически обходит вызовы кода, не являющегося пользовательским. Сведения о включении, отключении и использовании этой функции.
Отладка пользовательского кода с помощью функции "Только мой код"
Только мой код — это функция отладки Visual Studio, которая автоматически обходит вызовы системы, платформы и другой непользовательский код. В окне Стек вызовов функция "Только мой код" сворачивает такие вызовы во фреймы [Внешний код] .
Включение или отключение режима "Только мой код"
Для большинства языков программирования режим "Только мой код" включен по умолчанию.
- Чтобы включить или выключить режим "Только мой код" в Visual Studio, в разделе Средства >Параметры (или Отладка >Параметры) >Отладка >Общие установите или снимите флажок Включить только мой код.
[!NOTE] Параметр Включить только мой код является глобальным параметром, который применяется ко всем проектам Visual Studio на всех языках.
отладка "Только мой код"
Во время сеанса отладки в окне Модули отображаются модули кода, которые отладчик воспринимает как "Мой код" (т. е. пользовательский код), а также состояние загрузки их символов. Дополнительные сведения см. в разделе Дополнительные сведения о присоединении отладчика к приложению.
В окнах Стек вызовов и Задачи функция "Только мой код" сворачивает непользовательский код в затененный аннотированный фрейм кода, помеченный как [External Code] .
[!TIP] Открывать окна Модули, Стек вызовов и Задачи, как и большинство других окон отладки, можно только в сеансе отладки. В сеансе отладки выберите окна, которые нужно открыть, в разделе Отладка > Окна.
Чтобы просмотреть код в свернутом фрейме [Внешний код] , щелкните правой кнопкой мыши окно Стек вызовов или Задачи и выберите в контекстном меню пункт Показать внешний код. Вместо фрейма [Внешний код] появятся развернутые строки внешнего кода.
[!NOTE] Параметр Показать внешний код является текущим пользовательским параметром профилировщика, который применяется ко всем проектам на всех языках, открываемых этим пользователем.
Если дважды щелкнуть строку развернутого внешнего кода в окне Стек вызовов, строка вызывающего кода в исходном коде будет выделена зеленым. Для библиотек DLL или других модулей, которые не найдены или не загружены, может открыться страница, сообщающая, что символ или источник не найден.
На то, какой код отладчик посчитает пользовательским, также влияют три следующих атрибута.
- xref:System.Diagnostics.DebuggerNonUserCodeAttribute сообщает отладчику, что код, к которому применен этот атрибут, не является пользовательским.
- xref:System.Diagnostics.DebuggerHiddenAttribute скрывает код от отладчика, даже если режим "Только мой код" включен.
- xref:System.Diagnostics.DebuggerStepThroughAttribute указывает отладчику пошагово пройти через код, к которому применен этот атрибут, а не выполнять шаг с заходом в процедуры.
- Если выбрать Отладка >Шаг с заходом (или нажать клавишу F11) в непользовательском коде, будет выполнен шаг с обходом процедур и переход на следующую строку пользовательского кода.
- Если выбрать Отладка >Шаг с выходом (или нажать клавиши Shift+F11) в непользовательском коде, будет выполнен переход на следующую строку пользовательского кода.
Если отладчик прерывается в непользовательском коде (например, вы выбрали Отладка > Прервать все и приостановили выполнение в непользовательском коде), появляется окно Нет источника. Затем вы можете использовать команду Отладка > Шаг, чтобы перейти к следующей строке пользовательского кода.
При возникновении необработанного исключения в непользовательском коде отладчик прерывается на той строке в пользовательском коде, где было создано исключение.
Если для этого исключения включена первичная обработка исключения, вызывающая строка пользовательского кода в исходном коде выделяется зеленым цветом. В окне Стек вызовов отображается аннотированный фрейм с меткой [Внешний код] .
"Только мой код" в C++
Функция "Только мой код" для пошагового выполнения кода поддерживается начиная с Visual Studio 2017 версии 15.8. Чтобы использовать эту функцию, необходимо включить параметр компилятора /JMC (отладка "Только мой код"). В проектах C++ этот параметр включен по умолчанию. Для окна Стек вызовов и поддержки стека вызовов в режиме "Только мой код" параметр /JMC не требуется.
Чтобы код мог быть классифицирован как пользовательский, отладчик должен загрузить PDB-файл для двоичного файла, содержащего пользовательский код (это можно проверить в окне Модули).
В отношении функционирования стека вызовов, например в окне Стек вызовов, в режиме "Только мой код" в C++ непользовательским кодом считаются только следующие функции.
- Функции с открытой исходной информацией в файле символов.
- Функции, в которых файлы символов указывают, что исходный файл, соответствующий кадру стека, отсутствует.
- Функции, указанные в файлах *.natjmc в папке %VsInstallDirectory%\Common7\Packages\Debugger\Visualizers.
Что касается пошагового выполнения кода, в режиме "Только мой код" в C++ непользовательским кодом считаются только следующие функции.
- Функции, для которых соответствующий PDB-файл не был загружен в отладчик.
- Функции, указанные в файлах *.natjmc в папке %VsInstallDirectory%\Common7\Packages\Debugger\Visualizers.
[!NOTE] Для поддержки пошагового выполнения кода в режиме "Только мой код" код C++ должен быть скомпилирован с использованием компиляторов MSVC в Visual Studio 15.8 предварительной версии 3 или более поздней версии, и должен быть включен параметр компилятора /JMC (он включен по умолчанию). Дополнительные сведения см. в разделе Настройка поведения стека вызовов и пошагового выполнения кода в C++ и в этой записи блога. Если код был скомпилирован с использованием более старого компилятора, файлы .natstepfilter являются единственным способом настройки пошагового выполнения кода, который не зависит от режима "Только мой код". См. раздел Настройка поведения пошагового выполнения кода C++.
При отладке в C++:
- Если выбрать Отладка >Шаг с заходом (или нажать клавишу F11) в непользовательском коде, будет выполнен шаг с обходом процедур и переход на следующую строку пользовательского кода.
- Если выбрать Отладка >Шаг с выходом (или нажать клавиши Shift+F11) в непользовательском коде, будет выполнен переход на следующую строку пользовательского кода.
Если отладчик прерывается в непользовательском коде (например, вы выбрали Отладка > Прервать все и приостановили выполнение в непользовательском коде), пошаговое выполнение продолжается в непользовательском коде.
Если отладчик обнаруживает исключение, он останавливается на этом исключении, независимо от того, в каком коде оно находится — пользовательском или непользовательском. Параметры Не обработанные пользователем в диалоговом окне Параметры исключения игнорируются.
Настройка поведения стека вызовов и пошагового выполнения кода в C++
В проектах C++ можно указывать модули, исходные файлы и функции, которые окно Стек вызовов будет считать непользовательским кодом. Для этого нужно указать их в файлах *.natjmc. Эта настройка также применяется к пошаговому выполнению кода, если используется последняя версия компилятора (см. раздел"Только мой код" в C++).
- Чтобы указать непользовательский код для всех пользователей компьютера с Visual Studio, добавьте файл .natjmc в папку %VsInstallDirectory%\Common7\Packages\Debugger\Visualizers.
- Чтобы указать непользовательский код для отдельного пользователя, добавьте файл .natjmc в папку %USERPROFILE%\My Documents\\Visualizers.
Файл .natjmc является XML-файлом и имеет следующий синтаксис.
Атрибуты элементов модуля
Атрибуты элементов файла
Атрибут | Описание |
---|---|
Name | Обязательный. Полный путь к файлу или файлам исходного кода, который необходимо считать внешним кодом. При задании пути можно использовать следующие подстановочные знаки Windows: ? и * . |
Атрибуты элементов функций
Атрибут | Описание |
---|---|
Name | Обязательный. Полное имя функции, которую необходимо рассматривать как внешний код. |
Module | Необязательный элемент. Имя модуля или полный путь к модулю, содержащему эту функцию. Этот атрибут можно использовать для устранения неоднозначности функций с одинаковыми именами. |
ExceptionImplementation | Если задано значение true , стек вызовов отображает функцию, которая создала исключение, а не данную функцию. |
Настройка поведения пошагового выполнения кода в C++ независимо от параметров режима "Только мой код"
В проектах C++ можно указать функции, для которых будут выполняться шаги с обходом, внеся их в файлы *.natstepfilter как непользовательский код. Функции, указанные в файлах *.natstepfilter, не зависят от параметров режима "Только мой код".
- Чтобы указать непользовательский код для всех локальных пользователей Visual Studio, добавьте файл .natstepfilter в папку %VsInstallDirectory%\Common7\Packages\Debugger\Visualizers.
- Чтобы указать непользовательский код для отдельного пользователя, добавьте файл .natstepfilter в папку %USERPROFILE%\My Documents\\Visualizers.
Файл .natstepfilter является XML-файлом и имеет следующий синтаксис.
Элемент | Описание |
---|---|
Function | Обязательный. Указывает одну или несколько функций как функцию, не написанную пользователем. |
Name | Обязательный. Регулярное выражение в формате ECMA-262, содержащее полное имя функции для сопоставления. Пример: |
"Только мой код" в JavaScript
Режим "Только мой код" в JavaScript управляет пошаговым выполнением и отображением стека вызовов путем распределения кода по одной из следующих классификаций:
Отладчик JavaScript классифицирует код как пользовательский или непользовательский в следующем порядке.
Классификации по умолчанию.
- Скрипт, который выполняется путем передачи строки в предоставленную хостом функцию eval , классифицируется как MyCode.
- Скрипт, который выполняется путем передачи строки в конструктор Function , классифицируется как LibraryCode.
- Скрипт в ссылке платформы, например WinJS или SDK Azure, классифицируется как LibraryCode.
- Скрипт, который выполняется путем передачи строки в функцию setTimeout , setImmediate или setInterval , классифицируется как UnrelatedCode.
Классификации, указанные для всех проектов JavaScript Visual Studio в файле %VSInstallDirectory%\JavaScript\JustMyCode\mycode.default.wwa.json.
Классификации в файле mycode.json текущего проекта.
Каждый шаг классификации переопределяет предыдущие шаги.
Весь остальной код классифицируется как MyCode.
Вы можете изменить классификации по умолчанию и классифицировать определенные файлы и URL-адреса как пользовательский или непользовательский код путем добавления файла .json с именем mycode.json в корневую папку проекта JavaScript. См. раздел Настройка режима "Только мой код" в JavaScript.
При отладке в JavaScript:
- если функция является непользовательским кодом, выбор в меню Отладка >Шаг с заходом (или нажатие клавиши F11) действует так же, как выбор Отладка >Шаг с обходом (или нажатие F10);
- если шаг начинается в непользовательском коде (LibraryCode или UnrelatedCode), пошаговое выполнение временно работает так, как если бы режим "Только мой код" не был включен. После возвращения в пользовательский код пошаговое выполнение в режиме "Только мой код" возобновляется.
- Когда шаг в пользовательском коде приводит к выходу из текущего контекста выполнения, отладчик останавливается в следующей выполненной строке пользовательского кода. Например, если обратный вызов выполняется в коде LibraryCode, отладчик продолжает выполнение, пока не будет выполнена следующая строка кода пользователя.
- Использование пункта Шаг с выходом (или сочетания клавиш Shift+F11) приводит к остановке на следующей строке пользовательского кода.
В установленные в коде точки останова переход выполняется всегда, но код классифицируется.
- Если ключевое слово debugger обнаруживается в коде LibraryCode, отладчик всегда останавливается.
- Если ключевое слово debugger обнаруживается в коде UnrelatedCode, отладчик не останавливается.
Если необработанное исключение встречается в коде MyCode или LibraryCode, отладчик всегда останавливается.
Если необработанное исключение встречается в коде UnrelatedCode, и MyCode или LibraryCode находится в стеке вызовов, отладчик останавливается.
Если для данного исключения включена первичная обработка и это исключение возникает в коде LibraryCode или UnrelatedCode:
- Если исключение обрабатывается, отладчик не останавливается.
- Если исключение не обрабатывается, отладчик останавливается.
Настройка режима "Только мой код" в JavaScript
Чтобы разделить пользовательский и непользовательский код для отдельного проекта Visual Studio, можно добавить файл .json с именем mycode.json в корневую папку проекта.
Спецификации в этом файле переопределяют классификации по умолчанию и файл mycode.default.wwa.json. В файле mycode.json не нужно перечислять все пары "ключ-значение". Значения MyCode, Libraries и Unrelated могут быть пустыми массивами.
В файлах Mycode.json используется следующий синтаксис.
"Eval", "Function" и "ScriptBlock"
Пары "ключ-значение" Eval, Function и ScriptBlock определяют, как классифицируется динамически создаваемый код:
name | Описание |
---|---|
Eval | Скрипт, который выполняется путем передачи строки предоставленной хостом функции eval . По умолчанию скрипт Eval классифицируется как MyCode. |
Function | Скрипт, который выполняется путем передачи строки конструктору Function . По умолчанию скрипт Function классифицируется как LibraryCode. |
ScriptBlock | Скрипт, который выполняется путем передачи строки функциям setTimeout , setImmediate или setInterval . По умолчанию скрипт ScriptBlock классифицируется как UnrelatedCode. |
Можно изменить это значение на одно из следующих ключевых слов:
- MyCode классифицирует скрипт как MyCode.
- Library классифицирует скрипт как LibraryCode.
- Unrelated классифицирует скрипт как UnrelatedCode.
"MyCode", "Libraries" и "Unrelated"
Пары "ключ-значение" MyCode, Libraries и Unrelated определяют URL-адреса или файлы, которые нужно включить в классификацию:
name | Описание |
---|---|
MyCode | Массив URL-адресов или файлы, которые классифицируются как MyCode. |
Libraries | Массив URL-адресов или файлы, которые классифицируются как LibraryCode. |
Unrelated | Массив URL-адресов или файлы, которые классифицируются как UnrelatedCode. |
Строка URL-адреса или файла может содержать один или несколько символов * , соответствующих любому количеству символов (от 0 и больше). * — то же самое, что и регулярное выражение .* .
Как просмотреть мой HTML-код в браузере с новым кодом Microsoft Visual Studio?
В Notepad ++ у вас есть возможность запускать в браузере. Как я могу сделать то же самое с кодом Visual Studio?
Для Windows – Откройте браузер по умолчанию – Протестировано на VS Code v 1.1.0
Ответьте на оба вопроса, чтобы открыть определенный файл (имя жестко запрограммировано) ИЛИ открыть ЛЮБОЙ другой файл.
шаги:
Используйте ctrl + shift + p (или F1 ), чтобы открыть палитру команд.
Введите ” Tasks: Configure Task или в более старых версиях ” Configure Task Runner . Выбор этого файла откроет файл tasks.json. Удалите отображаемый скрипт и замените его следующим:
Не забудьте изменить раздел “args” файла tasks.json на имя вашего файла. Это всегда откроет этот конкретный файл, когда вы нажмете F5.
Вы также можете установить this для открытия любого файла, который вы открыли в данный момент, используя ["$"] в качестве значения для “args”. Обратите внимание, что $ выходит за пределы <. >, поэтому [""] неверно.
Вернитесь к html файлу (в данном примере это “text.html”) и нажмите ctrl + shift + b , чтобы просмотреть свою страницу в веб-браузере.
VS Code имеет расширение Live Server, которое поддерживает запуск в один клик из строки состояния.
Некоторые из особенностей:
- Запуск одним кликом из строки состояния
- Live Обновить
- Поддержка Chrome Debugging Attachment
@InvisibleDev – чтобы заставить это работать на mac, пытаясь использовать это:
Если у вас уже открыт хром, он запустит ваш html файл на новой вкладке.
Если вы хотите иметь живую перезагрузку, вы можете использовать gulp -webserver, который будет следить за вашими файлами и перезагружать страницу, так что вам не нужно нажимать F5 каждый раз на вашей странице:
Вот как это сделать:
Откройте командную строку (cmd) и введите
npm install –save-dev gulp -webserver
Введите Ctrl + Shift + P в коде VS и введите Настроить запуск задачи. Выберите его и нажмите клавишу ввода. Он откроет для вас файл tasks.json. Удалите все, начиная с конца, введите только следующий код
tasks.json
- В корневой каталог вашего проекта добавьте gulpfile.js и введите следующий код:
gulpfile.js
- Теперь в VS Code введите Ctrl + Shift + P и введите “Запустить задачу”, когда вы входите в нее, вы увидите свою задачу “веб-сервер” и нажмите клавишу ввода.
Теперь ваш веб-сервер откроет вашу страницу в браузере по умолчанию. Теперь любые изменения, которые вы будете делать с вашими страницами HTML или CSS, будут автоматически перезагружены.
Ниже приведена информация о том, как настроить ‘gulp -webserver’ порт, и какую страницу загрузить,…
Вы также можете запустить свою задачу, просто введя Ctrl + P и введите веб-сервер задач
Теперь вы можете установить расширение Просмотреть в браузере. Я тестировал его на окнах с хромом, и он работает.
версия vscode: 1.10.2
В linux вы можете использовать команду xdg-open , чтобы открыть файл с браузером по умолчанию:
Вот версия 2.0.0 для текущего документа в Chrome с сочетанием клавиш:
Для работы на веб-сервере:
Я просто повторяю шаги, которые я использовал из блога msdn . Это может помочь сообществу.
Это поможет вам настроить локальный веб-сервер, известный как lite-server, с VS Code , а также поможет вам разместить ваши статические html файлы в localhost и debug ваш код Javascript .
1. Установите Node.js
Если еще не установлен, получите его здесь
Он поставляется с npm (менеджер пакетов для приобретения и управления вашими библиотеками разработки)
2. Создайте новую папку для вашего проекта
Где-нибудь на вашем диске создайте новую папку для вашего веб-приложения.
3. Добавьте файл package.json в папку проекта
Затем скопируйте/вставьте следующий текст:
4. Установите веб-сервер
В окне терминала (командная строка в Windows), открытом в папке вашего проекта, выполните следующую команду:
Это установит lite-сервер (определенный в package.json), статический сервер, который загружает index.html в ваш браузер по умолчанию и автоматически обновляет его при изменении файлов приложения.
5. Запустите локальный веб-сервер!
(Предполагая, что у вас есть файл index.html в папке вашего проекта).
В том же окне терминала (командная строка в Windows) запустите эту команду:
Подождите секунду, и index.html загрузится и отобразится в вашем браузере по умолчанию, обслуживаемом вашим локальным веб-сервером!
lite-сервер следит за вашими файлами и обновляет страницу, как только вы вносите изменения в любые html, js или css файлы.
И если у вас VS Code настроен на автоматическое сохранение (меню Файл/Автосохранение), вы увидите изменения в браузере по мере ввода!
Заметки:
Это оно. Теперь перед любой сессией кодирования просто наберите npm start и все готово!
Первоначально размещено здесь в блоге msdn . @Laurent Duveau : @Laurent Duveau
Если вы только на Mac, это tasks.json файл:
… все, что вам нужно, чтобы открыть текущий файл в Safari, если его расширение является “.html”.
Создайте tasks.json , как описано выше, и вызовите его с помощью ⌘ + shift + b .
Если вы хотите, чтобы он открывался в Chrome, тогда:
Это будет делать то, что вы хотите, как при открытии новой вкладки, если приложение уже открыто.
Решение одним кликом просто установите open-in-browser Расширения с рынка Visual Studio.
Если вы наберете > , он покажет вам команды show и run
Или в вашем случае с HTML, я думаю, F5 после открытия палитры команд должен открыть отладчик.
Открытие файлов в браузере Opera (в Windows 64 бит). Просто добавьте следующие строки:
Обратите внимание на формат пути в строке “команда”:. Не используйте формат “C:\path_to_exe\runme.exe”.
Чтобы запустить эту задачу, откройте файл html, который хотите просмотреть, нажмите F1, введите task opera и нажмите enter
мой бегун script выглядит следующим образом:
и он просто открывает мой проводник, когда я нажимаю ctrl shift b в файле index.html
вот как вы можете запускать его в нескольких браузерах для Windows
Заметьте, что я не вводил ничего в args для edge, потому что Edge – мой браузер по умолчанию, просто дал ему имя файла.
EDIT: вам также не нужно -incognito или -private-window… это просто мне нравится просматривать его в частном окне
Для Mac – открывается в Chrome – проверено на VS Code v 1.9.0
- Используйте Command + shift + p , чтобы открыть палитру команд.
Введите Configure Task Runner, в первый раз, когда вы это сделаете, код VS даст вам меню прокрутки вниз, если оно выберет “Другое”. Если вы это сделали раньше, VS Code просто отправит вас непосредственно на tasks.json.
Один раз в файле tasks.json. Удалите отображаемый script и замените его на:
- Вернитесь в свой html файл и нажмите Command + shift + b , чтобы просмотреть свою страницу в Chrome.
Нажмите Ctrl + K, а затем M, откроется “Выбор режима языка” (или щелкните в правом нижнем углу с надписью HTML перед этим смайликом), введите разметку и нажмите Enter
Теперь нажмите Ctrl + K, а затем V, он откроет ваш HTML в ближайшей вкладке.
Теперь команды emmet не работали в этом режиме в моем html файле, поэтому я вернулся в исходное состояние (примечание – html tag tellisense работали отлично)
Чтобы перейти в исходное состояние – нажмите Ctrl + K, затем M, выберите автоопределение. Команды emmet начали работать. Если вас устраивает просмотрщик html файлов, вам не нужно возвращаться в исходное состояние.
Вам интересно, почему vscode не имеет опции просмотра html по умолчанию, когда он может отображать html файл в режиме уценки?
Во всяком случае, это круто. Счастливого vscoding 🙂
Вот версия 2.0.0 для Mac OSx:
Ctrl + F1 откроет браузер по умолчанию. альтернативно, вы можете нажать Ctrl + shift + P, чтобы открыть командное окно и выбрать “Просмотреть в браузере”. Код html должен быть сохранен в файле (несохраненный код в редакторе – без расширения, не работает)
Для будущих разработчиков, которые придут сюда в поисках решения. Это удивительное расширение, которое довольно недавно называется Browser Preview от Кеннета Аухенберга, вы можете получить расширение с рынка. Как начать, вы можете проверить это репо, как начать с предварительного просмотра браузера
Во всяком случае, мое решение ( windows ) построено на вершине @noontz’s. его конфигурации, возможно, было достаточно для более старых версий vscode но не с 1.34 (по крайней мере, я не мог заставить его работать..).
наши конфиги почти идентичны, за исключением одного свойства – это свойство является свойством group . Я не уверен, почему, но без этого моя задача даже не появилась бы в палитре команд.
так. рабочий tasks.json для пользователей windows использующий vscode 1.34 :
обратите внимание, что свойство problemMatcher не требуется для того, чтобы это работало, но без него вам навязывают дополнительный ручной шаг. пытался прочитать документы по этому свойству, но я слишком толстый, чтобы понять. надеюсь, кто-нибудь придет и обучит меня, но да, заранее спасибо за это. все, что я знаю, – включите это свойство, и ctrl+shift+b открывает текущий html файл в новой вкладке chrome , без проблем.
-
Откройте код Visual Studio, затем перейдите к расширениям.
Ищите “открыть в браузере”.
3. Установите его.
4.Нажмите правой кнопкой мыши свой HTML файл, вы найдете опцию “Открыть в браузере”.
Откройте пользовательский Chrome с URL-адресом из приглашения
Открыть пользовательский Chrome с активным файлом
Notes
- при необходимости замените свойство windows на другую ОС
- замените $ вашим собственным местоположением Chrome, например, "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
- замените $ вашим обычным каталогом Chrome, например,
"C:/My/Data/chrome/profile" или не указывать - Вы можете сохранить переменные, как указано выше, если хотите. Для этого добавьте следующие записи в settings.json – пользователь или рабочее пространство – и настройте пути в соответствии с вашими потребностями:
- Вы можете повторно использовать эти переменные, например, в launch.json для целей отладки: "runtimeExecutable": "$"
Вы не можете. Visual Studio не предназначалась для веб-дизайна или разработки. Вы должны закодировать некоторые строки, чтобы заставить его работать.
Читайте также: