Вопрос

При отладке не удается получить значения переменных в Visual Studio

Привет,

Столкнулся с проблемой:

Версия: 7.13.4.638_SalesEnterprise_Marketing

Действие: Отладка бизнес процесса

Описание:

Версия Visual Studio - 2017 Pro

В процессе отладки серверного кода бизнес процесса столкнулся с проблемой, уже ранее описанной в теме https://community.terrasoft.ua/taxonomy/term/7738. Хотелось бы понять, для версии 7.13 возможно ли каким либо образом решить проблему просмотра переменных в режиме дебага без ошибки Cannot obtain value of the local variable or argument because it is not available at this instruction pointer, possibly because it has been optimized away, либо это невозможно. Дело в том, что невозможность посмотреть значение переменных замедляет разработку.

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

Что не помогло:

1. Заново выполнить Attach to Process.

2. Установка Suppress JIT optimization on module load в настройках дебага.

3. В Build проекта снята галка Optimize code и Debugging information = Full

Нравится

5 комментариев

Alex, здравствуйте!

Вам необходимо в Options-Debugging-General также отключить флаг Enable Just My Code.

Илья,

Спасибо за ответ, 

Данная опция помогла мне чтобы устанавливались breakpoints. Я задавал ранее вопрос, https://community.terrasoft.ru/questions/neaktivnye-breakpoints-pri-otladke-biznes-processa

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

Alex, добрый день! Скажите, пожалуйста, смогли ли Вы справиться с проблемой? После обновления с 7.12 до 7.15 столкнулся с тем же самым, ничего не помогает

Вот более свежий случай, причём от него же. Судя по молчанию автора, он таки решил свой вопрос или нашёл какой-то обходной способ.

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

Иван Небеддаг,

Да, справиться удалось.

Я отказался от работы с Workspace. Enable Just My Code у меня включена. Конфигурационный проект содержит только разрешенные assemblies, например Terrasoft.Common, Terrasoft.Core и тд.

Алгоритм работы, при котором работает отладка у меня:

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

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

3. Написать в студии логику, нажать на сохранить все.

4. Нажать на компилировать измененное в конфигураторе. 

5. Подключиться дебаггером к процессу IIS, установить точки останова.

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

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

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

Надеюсь, помог. Если не помог, и Ваше решение отличается от моего, напишите его суда, пожалуйста. Для истории будет полезно.

Показать все комментарии