1с точка останова становится серой

Содержание
  1. Пять эффективных инструментов отладки в конфигураторе 1С
  2. Стек вызовов
  3. Подключение отладки
  4. Точка останова с условием
  5. Список точек останова
  6. Остановка по ошибке
  7. Хитрости отладки в 1С
  8. Крайние важные особенности отладки в 1С
  9. Как запустить отладчик от имени другого пользователя
  10. Отладка в клиент-серверном режиме
  11. У пользователя проблема, как к нему подключиться и отладить кусок кода
  12. Подключение к web-сервису, подключение к фоновому заданию
  13. Отладка 1С – полная инструкция по работе
  14. Запуск отладки в 1С
  15. Отладка фоновых заданий 1С
  16. Установка точки останова (брейкпойнта)
  17. Точка останова 1С с условием (синяя)
  18. Неактивная точка останова (серая)
  19. Точка останова по ошибке
  20. Пошаговое перемещение по программному коду 1С
  21. Анализ значений в режиме отладки 1С
  22. Отображение значения при наведении курсора
  23. Использование «Вычислить выражение» или «Табло»
  24. Как узнать откуда вызвана процедура в отладке — Стек вызовов
  25. Устранение неполадок с точками останова в отладчике – Visual Studio
  26. “Нет загруженных символов для этого документа””No Symbols have been loaded for this document”
  27. “…”… текущий исходный код отличается от версии, построенной в…”the current source code is different from the version built into…”
  28. Точка останова была установлена успешно (без предупреждения), но не сработалаThe breakpoint was successfully set (no warning), but didn’t hit
  29. После удаления точки останова она по-прежнему применяется при запуске отладкиI deleted a breakpoint, but I continue to hit it when I start debugging again
  30. Автоматизация бизнеса на платформе 1С:Предприятие 8
  31. 1.     Варианты запуска отладки
  32. 2.      Запуск отладки в режиме, когда предмет отладки выполняется от имени пользователя 1С (не разработчика)
  33. 3.     Установка точек останова 1С
  34. 4.     Остановка по ошибке при выполнении отладки
  35. 5.     Пошаговая отладка
  36. 6.     Вычисление выражений при выполнении отладки
  37. 7.     Окно «Табло» при выполнении отладки (открывается внизу окна конфигурации в 1С)
  38. 8.     Окно “Локальные переменные” (также открывается внизу окна конфигурации в 1С)
  39. 9.     Окно “Стек вызовов” (также открывается внизу окна конфигурации в 1С)
  40. 10.  Восстановление связи с предметом отладки

Пять эффективных инструментов отладки в конфигураторе 1С

1с точка останова становится серой

В этой статье я разберу пять интересных, нужных и, самое главное, эффективных инструментов по отладке кода в конфигураторе 1С, которые существенно облегчат жизнь 1С программисту.

Стек вызовов

Очень часто, особенно когда возникает ошибка в непонятном куске кода, нужно понять каким путем программа пришла именно в этот кусок кода.  В этом поможет нужный инструмент – стек вызовов. Данный инструмент необходимо запустить, когда сработала точка останова. Стек вызовов запускается, или через главное меню

Или, используя панель «Отладка конфигурации»

После запуска, откроется окно, в котором будет показан путь к текущему методу снизу вверх. В самом верху списка будет процедура (функция), где сработала точка останова.

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

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

Работайте со стеком вызова всегда, когда программа имеет разветвленную структуру процедур и функций, это существенно облегчит Вашу жизнь.

Подключение отладки

Обычно, разработчики запускают отладку кода в конфигураторе 1С, используя кнопку «Начать отладку».

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

  • 1С: Предприятие уже запущенно и в нем выполняется какой-то процесс, остановить Вы его не можете
  • Нужно отладить работу программы под пользователем, у которого нет прав на работу с конфигуратором

В этом случае, после открытия конфигуратора 1С необходимо подключить отладку к уже запущенному сеансу. Сделать это можно при помощи команды «Подключение» меню «Отладка».

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

Чтобы начать отлаживать нужный тип подключения, достаточно выделить соответствующую строку и нажать на кнопку «Подключить» (дважды кликнуть левой кнопкой мышки).

Заметьте, если Вы подключите отладку только на сервере, как на рисунке выше, то сможете работать только с кодом, который выполняется в серверном контексте. Если же код в клиентском контексте, то точка останова в этом месте кода не сработает.

Справедливо и наоборот: если подключена отладка только на клиенте, то можно работать только с клиентским контекстом формы.  Отлаживать код в серверном контексте формы, в также в процедурах и функциях модулей объектов, менеджеров и т.д. не будет возможно.

Подробно о клиентском и серверном контексте формы читайте в моей книге: Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов

Обычно, нельзя подключиться к пользовательскому сеансу. Чтобы это стало возможным, необходимо в параметрах пользовательского приложения 1С включить возможность отладки. Установить в параметр «Откладка в текущем сеансе» значение «Разрешена (протокол TCP/IP)» , когда отлаживаем работу по локальной сети.

В этом случае отладка будет включена единовременно. Если мы хотим, чтобы под этим пользователем всегда была включена отладка, то нужно в параметр «Отладка при перезапуске» установить значение  «Разрешена (протокол TCP/IP)»

Точка останова с условием

Очень часто нужно остановиться в каком-то месте кода не просто так, а когда какая-нибудь переменная принимает определенное значение. В этом нам поможет точка останова с условием.

При установке точки останова с условием, в условие необходимо указать какое-либо булево выражение.

Можно задать различные комбинации условий

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

Список точек останова

Очень часто в процессе отладки программист может поставить так много точек останова, что сам забудет, где и что ставил.  Быстро сориентироваться во всех поставленных точках останова поможет список точек останова. Открыть его можно через главное меню: Главное меню – Отладка – Список точек останова.

Или  с помощью комбинации клавиш Alt + F9

В этом списке можно как включить-выключить нужную точку останова, так и перейти в модуль, где эта точка находится. Достаточно просто дважды кликнуть по нужной строке.

У формы списка точек останова есть очень интересные возможности сохранения и последующей загрузки сохраненных точек останова, которые осуществляются при помощи кнопок «Сохранить» и «Открыть файл»

Остановка по ошибке

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

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

Включить остановку по ошибке достаточно просто: Главное меню – Отладка- Остановка по ошибке.

В открывшемся окне нужно установить флаг «Остановка по ошибке» и нажать на кнопку «Ок».

Теперь, если в процессе выполнения программы платформой будет сгенерирована ошибка, то программа остановиться на той строке модуля, код которой приводит к ошибке.

И Вы при помощи табло (или Вычислить выражение) сможете проанализировать значения переменных, которые, возможно, привели к ошибке.
Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»

Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

Книга «Основы разработки в 1С: Такси»

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

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

: https://.com/1c_prosto
Фейсбуке: https://www..com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://.com/signum2009

Источник: https://www.1s-up.ru/5_effectivnich_instrumentov_otladki_v_konfiguratore_1c/

Хитрости отладки в 1С

1с точка останова становится серой

Отладка – это основной инструмент которым должен овладеть начинающий программист. Без отладки написание любой более менее сложной функции и\или объекта превратиться в настоящую муку. Сам я выбираю такой способ, хорошо себя зарекомендовавший себя: пишу блок кода в 50-100 строк не останавливаясь и не проверяя отладчиком.

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

Затем однократно полностью прохожу весь код построчно, останавливаясь на каждой переменной и сверяю ее “тип значения”, а также ее “значение” с тем что было спланировано перед доработкой.

  • Запуск отладчика производится с панели, нажатием на соответствующую кнопку (F5):
  • Чтобы остановить отладчик на нужной строке, надо поставить красную точку (двойным кликом) слева от строки, она называется точка останова:
  • После того как отладчик остановится на строке выделяем любую переменную и жмем Shift+F9 (или кнопку на панели вверху)
  • Переход по строкам, с заходом в вызываемые процедуры – F11
  • Переход по строкам, не заходя в процедуры которые вызываются в вашем коде – F10

Крайние важные особенности отладки в 1С

  • Если необходимо быстро перейти к строке, на которой платформа “вываливается” с ошибкой, то необходимо установить флаг “Останавливаться по ошибке”:
  • Если в есть подозрение что где то в коде спрятана “попытка\исключение” и вы не можете найти это место, хотя есть мнение что она отсекает крайне важное для вас событие, то необходимо установить этот же флаг остановки. При ошибке в блоке “попытка..исключение” отладчик остановится на этой строке.
  • Если программа зависла на выполнении, допустим где-то бесконечный цикл, то можно легко перейти на строку, которая выполняется в данный момент, если нажать Меню “Отладка – Остановить”.
  • Если вы находитесь в процедуре и не знаете откуда она была вызвана – необходимо вызвать окно “стек вызовов”, в нем будет видно всю цепочку вызова процедур:
  • При обнаружении ошибки необходимо не прекращая отладки менять код и идти дальше. Интересная особенность, только что измененный код часто можно сразу же проверить на работоспособность. Например у вас есть код “Если А=Б Тогда” в результате отладки вы понимаете что код надо поменять. Даже если отладчик спустился уже на строку ниже смело меняем на “Если АБ Тогда”, тутже выделяем блок “АБ” и жмем Shift+F9, в окне вычисляющим выражение будет уже новый код и значение вычисленное по этому новому куску кода.

Как запустить отладчик от имени другого пользователя

  1. В конфигураторе нажать “Сервис – Параметры” и задать имя пользователя на вкладке “Запуск 1С:Предприятия”:
  2. Затем запустить отладчик в требуемом режиме:
  3. В итоге на экран будет выдано окно авторизации под заданным пользователем:

Отладка в клиент-серверном режиме

В режиме клиент-сервер, начинающего программиста ждет сюрприз,  отладчик прекрасно “входит” в процедуры “на клиенте” но дойдя до вызова серверной процедуры не заходит в нее, а как бы проходит строку, если вы бы вы нажали “шагнуть через F10”. Причина проста – отладчику необходим доступ к серверной части 1С, и пока вы его не откроете вы не сможете отлаживать “серверный” участок кода.

Как включить отладку на сервере. Все очень просто необходимо изменить параметры запуска службы 1С-сервера:

  1. Открываем реестр (на ПК где крутится сервер 1С:предприятия) – пуск – regedit
  2. Ищем в реестре виндоус службу 1С, примерно по такому пути: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\1C:Enterprise 8.3 Server Agent
  3. В ключе ImagePath добавляем параметр “-debug”, не забываем оставить пробелы.
  4. После правки реестра перезапускаем службу через панель управления – .. службы.
  5. Готово! Теперь отладчик будет заходить внутрь серверных модулей\процедур.

У пользователя проблема, как к нему подключиться и отладить кусок кода

Бывают ситуации когда возникает трудноуловимая ошибка и появляется только у одного пользователя. Если ошибку пользователю удается воспроизвести, можно подключиться отладчиком к уже запущенному процессу пользователя и отладить процедуру. Как сделать:

  1. В запущенной программе пользователя поставить флаг разрешающий отладку в этом сеансе. В меню – сервис – параметры – отладка в текущем сеансе.
  2. запустить рядом конфигуратор и нажать меню “отладка” – “подключение” – в списке “доступные предметы отладки” появится сеанс проблемного пользователя.

Подключение к web-сервису, подключение к фоновому заданию

Для того чтобы отладить web-сервис надо поймать нужный “поток” на сервере. А это означает а) надо включить отладку на сервере (см. выше) б) надо включить спец. флажок, который позволит перехватить управление потоком.

Включение перехвата:

  1. Установить точку останова на процедуре, которую необходимо отладить.
  2. Меню “отладка” – “подключение” – “автоматическое подключение…”- установить флажок “web-сервисы..\фоновые задания”.
  3. Дальше ждем когда точка останова сработает – готово! сеанс перехвачен.
  4. Далее если ваша база более менее “живая”, необходимо убрать вышеустановленные флажки и только затем продолжить отладку процедуры. Если этого не сделать то при переходе к следующей строке у вас начнется чехарда с перескоками между строк. Ведь к вам будут подключаться все новые и новые фоновые задания и web-сервисы.

Источник: https://codexp.ru/interesnoe/zametki-po-1s/18-khitrosti-otladki-v-1s

Отладка 1С – полная инструкция по работе

1с точка останова становится серой

Отладка 1С — очень мощный и функциональный механизм платформы 1С 8.3, позволяющий быстро найти ошибки в программном коде (в других языках программирования это называется «дебаг», от английского «debug»).

Ниже рассмотрим основные методы использования механизма отладки в виде практической инструкции на конкретном примере.

Внимание! Если Вы используете клиент-серверный режим работы (на сервере), Вам необходимо включить отладку на сервере 1С Предприятия.

Запуск отладки в 1С

Самый простой способ запустить отладку в 1С  — открыть 1С в режиме конфигуратор и из него запустить режим отладки в нужном режиме работы (тонком/толстом, управляемом/обычном):

Рекомендуем при рядовой разработке использовать режим отладки «Толстого клиента». Но в чистовом варианте всегда прогонять в режиме «тонкого» и «веб-клиента».

Отладка фоновых заданий 1С

Для того чтобы иметь возможность отладки фоновых заданий, необходимо зайти в меню «Отладка — Подключение». В открывшемся окне нажать кнопку «Автоматическое подключение»:

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания – попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

В этом окне Вы можете установить соответствующий флаг.

Помимо фоновых заданий, в данном окне Вы можете включить отладку внешних соединений, http и web-сервисов.

Установка точки останова (брейкпойнта)

Вторым этапом при отладке является установка точки останова (в других языках программирования — брейкпойнт).

Для примера я выбрал для отладки обработчик «При изменении» на форме документа Доверенность:

Для того чтобы установить точку останова, необходимо найти нужный программный код и кликнуть дважды на поле, слева от поля ввода кода (или нажать кнопку F9):

Чтобы увидеть список всех установленных, необходимо зайти в меню Отладка — Список точек останова (alt + F9):

Точка останова 1С с условием (синяя)

Помимо обычной точки останова в 1С есть еще один вид точек останова — с условием. Графически такая точка отображается синим цветом. Такая точка останова очень полезна, когда нужно отловить какую-либо определенную итерацию при обходе в цикле. Отладка включится в тот момент, когда выполнится определенное условие.

Например, остановим цикл на строке с номером 25:

Неактивная точка останова (серая)

Серая точка останова означает, что она не активна, система не будет останавливаться на такой точке. Сделать не активной её можно, нажав специальную кнопку на панели «Отключить точку останова» (shift+ctrl+F9):

Точка останова по ошибке

Система может остановиться по вызванной ошибке, для этого необходимо в меню Отладка — Остановка по ошибке установить соответствующий флаг:

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

Пошаговое перемещение по программному коду 1С

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

Для того чтобы сделать шаг к следующей строке, необходимо нажать кнопку «F11″(Шагнуть в).

Если Вы пошагово проходите по строчкам программного кода и на строке присутствует процедура или функция, то Вы «провалитесь» внутрь этой процедуры (или функции).

Чтобы не «проваливаться», достаточно вместо F11 (Шагнуть в) выполнять переход по строкам кнопкой F10 (Шагнуть через), эта кнопка позволяет перешагивать через процедуры в программном коде.

Чтобы перейти с текущего положения курсора к нужному, минуя промежуточные строчки кода, необходимо установить курсор на нужной строке и нажать shift + F10 (Идти до курсора).

Анализ значений в режиме отладки 1С

Посмотреть значения определенных значений можно разными способами:

Отображение значения при наведении курсора

При наведении на переменную система «подсвечивает» значения переменной:

Использование «Вычислить выражение» или «Табло»

  • Форму Вычислить выражение можно вызвать с помощью контекстного меню или нажатия быстрых клавиш — (Shift + F9), или меню (Отладка — Вычислить выражение).
  • Табло вызывается с помощью быстрых клавиш Ctrl + Alt +W или из меню (Отладка — Табло).

Эти два метода анализа очень похожи, основные отличия в интерфейсе.

Табло удобнее использовать для группы показателей, выражения — для одиночных.

Использовать эти методы очень просто. Достаточно ввести в табло имя нужной переменной. Большой плюс произвольных вычислений — Вы можете добавить в выражение свои данные.

Например:

Очень полезно использовать вычисление выражения и выполнить запрос, выгрузить в таблицу значений и посмотреть её.

Как узнать откуда вызвана процедура в отладке — Стек вызовов

Очень часто требуется понять, откуда была вызвана та или иная процедура или функция и с какими параметрами. Для этого в 1С предусмотрена специальная функция — «Стек вызовов». Для запуска Стека вызовов необходимо нажать горячие клавиши — Ctrl + Alt + C или через меню (Отладка — Стек вызовов).

С помощью него Вы можете подробно узнать, откуда была вызвана процедура и с какими параметрами:

Если Вас интересует оценка производительности при отладке — Замер производительности при отладке.

Смотрите также обзорное видео по отладке в 1С:

Другие статьи по 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник: https://programmist1s.ru/otladka-1s/

Устранение неполадок с точками останова в отладчике – Visual Studio

1с точка останова становится серой

  • 01/23/2018
  • Чтение занимает 3 мин

При отладке точка останова может иметь два визуальных состояния: закрашенный красный кружок или незакрашенный кружок (белая заливка).When debugging, a breakpoint has two possible visual states: a solid red circle and a hollow (white filled) circle.

Если отладчик может успешно установить точку останова в целевом процессе, она будет отображаться как закрашенный красный кружок.If the debugger is able to successfully set a breakpoint in the target process, it will stay a solid red circle.

Если точка останова отображается как незакрашенный кружок, либо точка останова отключена, либо при попытке установить ее возникло предупреждение.If the breakpoint is a hollow circle, either the breakpoint is disabled or warning occurred when trying to set the breakpoint.

Чтобы определить причину, наведите указатель мыши на точку останова и проверьте, есть ли предупреждение.To determine the difference, hover over the breakpoint and see if there is a warning.

В следующих двух разделах описаны наиболее часто возникающие предупреждения и способы их устранения.The following two sections describe prominent warnings and how to fix them.

“Нет загруженных символов для этого документа””No Symbols have been loaded for this document”

Перейдите в окно Модули (Отладка >Окна >Модули) и проверьте, загружен ли модуль.Go to the Modules window (Debug >Windows >Modules) and check whether your module is loaded.

  • Если модуль загружен, проверьте, загружены ли символы, в столбце Состояние символов.If your module is loaded, check the Symbol Status column to see whether symbols have been loaded.
    • Если символы не загружены, проверьте состояние символов для диагностики проблемы.If symbols are not loaded, check the symbol status to diagnose the issue. В контекстном меню модуля в окне Модули щелкните Сведения о загрузке символов… , чтобы узнать, откуда отладчик пытался загрузить символы.From the context menu on a module in the Modules window, click Symbol Load Information… to see where the debugger looked to try and load symbols. Дополнительные сведения о загрузке символов см. в статье Указание файлов символов (.pdb) и исходных файлов.For more information about loading symbols, see Specify Symbol (.pdb) and Source Files.
    • Если символы загружены, PDB-файл не содержит сведений об исходных файлах.If symbols are loaded, the PDB does not contain information about your source files. Возможно несколько причин.These are a few possible causes:
      • Если исходные файлы были добавлены недавно, убедитесь в том, что загружается последняя версия модуля.If your source files were recently added, confirm that an up-to-date version of the module is being loaded.
      • Можно создать очищенные PDB-файлы с помощью параметра компоновщика /PDBSTRIPPED.It is possible to create stripped PDBs using the /PDBSTRIPPED linker option. Очищенные PDB-файлы не содержат сведений об исходных файлах.Stripped PDBs do not contain source file information. Убедитесь в том, что вы работаете с полным, а не очищенным PDB-файлом.Confirm you are working with a full PDB and not a stripped PDB.
      • PDB-файл частично поврежден.The PDB file is partially corrupted. Удалите файл и выполните чистую сборку модуля, чтобы попытаться устранить проблему.Delete the file and perform a clean build of the module to try to resolve the issue.
  • Если модуль не загружен, проверьте следующее, чтобы найти причину:If your module is not loaded, check the following to find the cause:

    • Убедитесь в том, что выполняется отладка правильного процесса.Confirm that you are debugging the right process.
    • Проверьте, выполняется ли отладка соответствующего кода.Check to see that you are debugging the right kind of code. Узнать, для отладки какого типа кода настроен отладчик, можно в окне Процессы (Отладка >Окна >Процессы).You can find out what type of code the debugger is configured to debug in the Processes window (Debug >Windows >Processes). Например, если вы пытаетесь выполнить отладку кода на C#, убедитесь в том, что ваш отладчик настроен для соответствующего типа и версии .NET (например, “Управляемый код (версия 4*)” “Управляемый код (версия 2* или версия 3*)” или “Управляемый код (CoreCLR)”).For example, if you are trying to debug C# code, confirm that your debugger is configured for the appropriate type and version of .NET (for example, Managed (v4*) versus Managed (v2*/v3*) versus Managed (CoreCLR)).

“…”… текущий исходный код отличается от версии, построенной в…”the current source code is different from the version built into…”

Если исходный файл изменился и исходный код больше не соответствует отлаживаемому коду, отладчик по умолчанию не будет устанавливать точки останова в коде.If a source file has changed and the source no longer matches the code you are debugging, the debugger will not set breakpoints in the code by default.

Как правило, эта проблема возникает, если исходный файл изменился, но исходный код не был перестроен.Normally, this problem happens when a source file is changed, but the source code wasn’t rebuilt. Чтобы устранить эту проблему, перестройте проект.To fix this issue, rebuild the project.

Если система сборки считает, что проект уже обновлен, несмотря на то, что это не так, можно заставить ее перестроить проект, сохранив исходный файл еще раз или очистив выходные данные сборки проекта перед сборкой.

If the build system thinks the project is already up-to-date even though it isn’t, you can force the project system to rebuild either by saving the source file again or by cleaning the project’s build output before building.

В редких случаях может потребоваться отладка без соответствующего исходного кода.In rare scenarios, you may want to debug without having matching source code.

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

Debugging without matching source code can lead to a confusing debugging experience, so make sure that this is how you want to proceed.

Чтобы отключить проверки безопасности, выполните одно из указанных ниже действий.To disable these safety checks, do one of the following:

  • Чтобы изменить отдельную точку останова, наведите указатель мыши на значок точки останова в редакторе и щелкните значок параметров (в виде шестеренки).To modify a single breakpoint, hover over the breakpoint icon in the editor and click the settings (gear) icon. В редактор добавится окно просмотра.A peek window is added to the editor. В верхней части окна просмотра есть гиперссылка, указывающая на расположение точки останова.At the top of the peek window, there is a hyperlink that indicates the location of the breakpoint. Щелкните гиперссылку, чтобы разрешить изменение расположения точки останова, и установите флажок Разрешить наличие отличий в исходном коде от первоначальной версии.Click the hyperlink to allow modification of the breakpoint location and check Allow the source code to be different from the original.
  • Чтобы изменить этот параметр для всех точек останова, выберите Отладка >Параметры и настройки.To modify this setting for all breakpoints, go to Debug >Options and Settings. На странице Отладка / Общие снимите флажок Требовать точного соответствия исходной версии файлов .On the Debugging/General page, clear the Require source files that exactly match the original version option. Не забудьте снова включить этот параметр после завершения отладки.Make sure to reenable this option when you are finished debugging.

Точка останова была установлена успешно (без предупреждения), но не сработалаThe breakpoint was successfully set (no warning), but didn’t hit

В этом разделе содержатся сведения об устранении неполадок в ситуации, когда отладчик не выводит предупреждений — точка останова представлена закрашенным красным кружком во время отладки, но не срабатывает.This section provides information to troubleshoot issues when the debugger isn’t displaying any warnings – the breakpoint is a solid red circle while actively debugging, yet the breakpoint isn’t being hit.

Вот несколько моментов, которые следует проверить.Here are a few things to check:

  1. Если код выполняется в нескольких процессах или на нескольких компьютерах, убедитесь в том, что отлаживается нужный процесс на нужном компьютере.If your code runs in more than one process or more than one computer, make sure that you are debugging the right process or computer.
  2. Убедитесь в том, что код выполняется.Confirm that your code is running. Чтобы проверить, выполняется ли код, добавьте вызов System.Diagnostics.Debugger.Break (C# или VB) либо __debugbreak (C++) в строку кода, в которой вы пытаетесь установить точку останова, а затем перестройте проект.To test that your code is running, add a call to System.Diagnostics.Debugger.Break (C#/VB) or __debugbreak (C++) to the line of code where you are trying to set the breakpoint and then rebuild your project.
  3. При отладке оптимизированного кода убедитесь в том, что функция, в которой установлена точка останова, не встраивается в другую функцию.If you are debugging optimized code, make sure the function where your breakpoint is set isn’t being inlined into another function. Описанный ранее тест Debugger.Break можно использовать для проверки и этой проблемы.The Debugger.Break test described in the previous check can work to test this issue as well.

После удаления точки останова она по-прежнему применяется при запуске отладкиI deleted a breakpoint, but I continue to hit it when I start debugging again

Если удалить точку останова во время отладки, она может снова сработать при очередном запуске отладки.If you deleted a breakpoint while debugging, you may hit the breakpoint again the next time you start debugging.

Чтобы прекратить применение этой точки останова, убедитесь, что все ее экземпляры удалены из окна Точки останова .

To stop hitting this breakpoint, make sure all the instances of the breakpoint are removed from the Breakpoints window.

Отправить и просмотреть отзыв по

Этот продукт Эта страница Просмотреть все отзывы по странице

Источник: https://docs.microsoft.com/ru-ru/visualstudio/debugger/troubleshooting-breakpoints?view=vs-2019

Автоматизация бизнеса на платформе 1С:Предприятие 8

1с точка останова становится серой

5.     Пошаговая отладка.

6.     Вычисление выражений при выполнении отладки.

7.     Окно Табло при выполнении отладки.

8.     Окно “Локальные переменные”.

9.     Окно “Стек вызовов”.

10. Восстановление связи с предметом отладки.

В статье речь пойдет об “азах” работы с отладчиком 1С.  

1.     Варианты запуска отладки

Возможные режимы: “тонкий клиент”, “веб-клиент”, “мобильный клиент”, “мобильное приложение”, толстый клиент”, “толстый клиент (обычное приложение)”.

Не буду останавливаться на особенностях названных режимов работы 1С:Предприятия – это тема отдельной статьи. Скажу лишь, что выбор нужного режима запуска отладки осуществляется через меню “Отладка”→”Начало отладки”.

Также запуск отладки в нужном режиме можно осуществить с помощью соответствующей кнопки в панели “Конфигурация” панели инструментов конфигуратора, предварительно добавив в нее кнопки для используемых при отладке режимов запуска.  

2.      Запуск отладки в режиме, когда предмет отладки выполняется от имени пользователя 1С (не разработчика)

Часто требуется “отловить” ошибку, которая возникает только у пользователей, не имеющих полных прав, или проверить, как работает добавленный функционал у пользователей с “неполными” правами.

В таких случаях можно запустить отладку под одним из таких пользователей, выбрав его из списка в соответствующих настройках в меню “Сервис”→”Параметры”.

В открывшемся окне на вкладке “Основные” в группе “Пользователь” нужно установить переключатель в положение “Имя” и выбрать пользователя, для которого нужно выполнить отладку.

После чего нужно запустить или перезапустить отладку в выбранном режиме. 

3.     Установка точек останова 1С

Точка останова 1С без условий: позиционируемся на нужной строке кода и затем либо нажимаем “F9”, либо выполняем двойной щелчок мышью на затемненной полосе слева от белой области с кодом.

Еще можно в контекстном меню (нажатие правой кнопки мыши) выбирать пункт “Точка останова в 1С”.

На полосе слева от области с кодом появится значок установленной точки останова 1С в виде кружочка розового цвета.

Точка останова 1С с условием (когда требуется чтобы остановка отладки происходила только при выполнении определенного условия): позиционируемся на нужной строке и затем в контекстном меню (нажатие правой кнопки мыши) выбираем пункт “Точка останова с условием…”. В открывшемся поле ввода условия точки останова 1С вводим необходимое условие для срабатывания данной точки останова 1С.

На полосе слева от области с кодом появится значок установленной точки останова (по условию в виде синего кружочка со знаком вопроса).

Если требуется отключить/включить срабатывание точки останова в 1С (как простой, так и с условием): позиционируемся на нужной строке и затем либо нажимаем сочетание “Ctrl+Shift+F9”, либо в контекстном меню (нажатие правой кнопки мыши) выбираем пункт “Включить/отключить точку останова”. При этом отключенная точка останова в 1С будет обозначена кружочком серого цвета, а включенная в зависимости от типа: розовым кружочком либо синим кружочком со знаком вопроса.

В процессе отладки строка кода, на которой в данный момент остановлен отладчик, обозначается соответствующими курсором (далее “курсор отладки”) – горизонтальной стрелкой светлого оттенка, которая может накладываться на кружочки установленных точек останова, если остановка произошла на соответствующей строке.

Замечу, что возможные действия с точками останова в 1С отображаются в соответствующих группах контекстного меню (нажатие правой кнопки мыши) и пункте меню “Отладка” главного меню.

Чтобы открыть список всех установленных точек, нужно либо нажать сочетание “Alt+F9”, либо выбрать пункт меню “Отладка”→”Список точек останова” главного меню. Откроется окно со списком точек останова 1С, в котором у активных точек останова взведен флаг “Вкл./выкл.”.

Доступные действия с точками останова отображаются справа над списком.

По двойному щелчку по любой из точек в списке либо при нажатии кнопки “Перейти к исходному коду” над списком происходит открытие («переключение на») соответствующего модуля с позиционированием на соответствующей строке с установленной точкой останова.

4.     Остановка по ошибке при выполнении отладки

Существует возможность включения автоматической остановки выполнения отладки при возникновении ошибок. Для этого необходимо выбрать пункт меню “Отладка”→”Остановка по ошибке…” главного меню. Откроется окно, в котором нужно установить флаг “Останавливаться при ошибке”.

При необходимости можно установить флаг “Останавливаться только на ошибках, включающих текст” и в списке под ним добавить фрагмент уникального текста ошибки, при возникновении которой необходимо останавливаться, пропуская другие ошибки (которые не приводят к аварийному завершению выполнения кода до возникновения отлаживаемой ошибки).  

5.     Пошаговая отладка

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

«Шагнуть» (клавиша “F11”, или соответствующий пункт в панели “Отладка конфигурации” панели инструментов, или соответствующий пункт в меню “Отладка” главного меню).

Происходит выполнение кода текущей строки, и курсор отладки останавливается на следующей строке кода.

При этом, если курсор отладки находился на строке с вызовом какой-либо процедуры (функции), происходит переход курсора на первую строку в теле вызванной процедуры (функции).

«Шагнуть через» (клавиша “F10” или соответствующий пункт в панели “Отладка конфигурации” панели инструментов, или соответствующий пункт в меню “Отладка” главного меню).

Если курсор отладки находился на строке с вызовом какой-либо процедуры (функции), происходит переход курсора на следующую за этой строкой кода строку без остановки в этой процедуре (функции).

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

Следующее действие в Пошаговой отладке: «шагнуть из» (сочетание “Shift+F11” или соответствующий пункт в панели “Отладка конфигурации” панели инструментов, или соответствующий пункт в меню “Отладка” главного меню).

Если курсор отладки находился на строке кода в теле текущей процедуры (функции), происходит выполнение оставшегося кода тела текущей процедуры (функции), включая вызовы из нее других процедур (функций), и так далее без ограничения по уровню вложенности.

После чего курсор отладки позиционируется на строке после той, из которой произошел вызов данной процедуры (функции).

«Идти до курсора» (сочетание “Shift+F10”, или соответствующий пункт в панели “Отладка конфигурации” панели инструментов, или соответствующий пункт в меню “Отладка” главного меню).

Выполняется весь код от текущего положения курсора отладки до строки, на которой находится курсор редактора кода, включая вызовы из нее других процедур (функций), и так далее без ограничения по уровню вложенности.

После чего курсор отладки позиционируется на строке, на которой находится курсор редактора кода.  

6.     Вычисление выражений при выполнении отладки

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

А можно выделить курсором название переменной и нажать “Shift+F9”.

Еще вариант: выбрать соответствующий пункт в контекстном меню (нажатие правой кнопки мыши), на панели инструментов “Отладка конфигурации либо в меню “Отладка” главного меню.

Откроется окно, в котором в поле “Выражение” будет название переменной, а в поле “Результат” – текущее значение переменной и ее тип. В поле “Выражение” можно указывать не только названия переменных, но и выражения для вычисления, в том числе производить вызовы любых доступных из данной процедуры функций текущего модуля или общих модулей конфигурации, или функций встроенного языка 1С.  

7.     Окно «Табло» при выполнении отладки (открывается внизу окна конфигурации в 1С)

При желании в окне “Вычислить выражение” можно, нажав кнопку “Включить в табло”, добавить выражение из поля “Выражение” или выделенное свойство в поле “Результат” в служебное окно «Табло» внизу окна конфигурации в 1С, в которое можно добавить и просматривать результаты вычисления интересующих переменных (выражений) в процессе пошаговой отладки. Окно «Табло» также можно открыть либо в панели инструментов “Отладка конфигурации” панели инструментов, либо в меню “Отладка” главного меню. 

8.     Окно “Локальные переменные” (также открывается внизу окна конфигурации в 1С)

   Похожий на окно «Табло» функционал реализован в окне “Локальные переменные”, в котором в процессе пошаговой отладки можно просматривать значения локальных переменных текущей процедуры (функции).

#Локальные переменные

Для переменных и свойств в окнах “Вычислить выражение”, “Табло” и “Локальные переменные” в контекстном меню (нажатие правой кнопки мыши) доступен пункт “Установить новое значение в виде выражения”, при выборе которого отрывается окно, в котором можно установить новое значение переменной (свойства).

Отмечу также, что в окнах “Вычислить выражение” и “Табло” доступно непосредственное редактирование значений переменных (свойств), а также рекурсивное разворачивание (нажатием на пиктограмму “плюс” слева от переменной(свойства)) их вложенных свойств.

9.     Окно “Стек вызовов” (также открывается внизу окна конфигурации в 1С)

С помощью Окна “Стек вызовов” мы можем, например, исправить следующую ошибку: в какой-то процедуре (функции) возникает ошибка из-за некорректного значения одного из параметров вызова, которое передавалось по цепочке вызывающих друг друга процедур и функций. Мы можем “выследить” ту процедуру или функцию, которая оказалась “источником” некорректной установки значения параметра, переданного далее по цепочке.

10.  Восстановление связи с предметом отладки

Возникают ситуации, когда теряется связь с предметом отладки (чаще всего для кода, выполняемого на сервере). То есть отладчик перестает останавливаться на точках останова.

В таких случаях обычно помогает в окне “Подключение” меню “Отладка” главного меню отключить и снова подключить требуемый предмет отладки (клиент, сервер и т.д.).

В редких случаях приходится завершить и снова начать сеанс работы с конфигуратором.

https://www.youtube.com/watch?v=rSreXFsyIE4

Специалист компании ООО «Кодерлайн»

Аскер Жансуев

Источник: https://www.koderline.ru/expert/instruktsii/article-rabota-s-otladchikom-instruktsiya-dlya-chaynikov/

Лайфхаки
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: