проблема возникает только с Debug , c Release все хорошо. С чем это связано и как можно это исправить?
Отслеживать
задан 27 дек 2016 в 17:19
1,830 2 2 золотых знака 22 22 серебряных знака 41 41 бронзовый знак
Можете показать код? И показать на нём где пытаетесь поставить точку? какие горячие клавиши нажимаете для отладки? и можно даже прикрепить скриншот с ошибкой (помимо уже указанной цитаты)
27 дек 2016 в 17:26
Бывает, что в конце рабочего дня пытаешься отлаживаться в конфигурации Release вместо Debug — это одна из возможных причин 🙂
27 дек 2016 в 17:27
А что за модуль? Может, вы используете не ту библиотеку, или не стоите её из исходников, а подключаете скомпилированную?
27 дек 2016 в 17:28
Обработчик MouseDown ImageBox’а. Но точки не срабатывают в любом месте. Сторонних библиотек не подключаю
27 дек 2016 в 17:50
вероятно Вам нужно вот эта msdn.microsoft.com/ru-ru/library/cc667410.aspx
27 дек 2016 в 22:02
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Простейший пример использования отладчика в Visual Studio (C#)
На будущее — может пригодится. У меня, судя по всему, не совпадали версии .NetFramework в отлаживаемом проекте-библиотеке и в дополнительно подключенном к нему. Поэтому я не мог провалиться на отладку в этот дополнительный проект-библиотеку.
Сначала отладка проваливалась в дополнительный проект-библиотеку, но потом что-то случилось и настал капут. Я и заново подключал этот дополнительный проект, и чистил папку Debug , и искал какие-либо настойки отладчика, и сравнивал файлы .csproj на предмет существенных различий, и колупался в главном .sln — никакого эффекта.
Потом в свойствах проекта в разделе «Приложение» я поставил одинаковые версии .NetFramework и точки останова заработали.
Отслеживать
2,520 1 1 золотой знак 16 16 серебряных знаков 30 30 бронзовых знаков
ответ дан 21 ноя 2017 в 11:20
была аналогичная проблема, не работала точка останова (писало ошибка C4715) проблема оказалась в том что после создания проекта я переименовал корневую папку. после того как скопировал все содержимое и проверил код в другом файле — точка останова заработала.
Отслеживать
ответ дан 29 мар 2018 в 1:29
Nikolai Pavlov Nikolai Pavlov
У меня выводило такое же сообщение при поставке точки останова.
Оказалось, что при сборке у меня выдавало следующие сообщение (даже не смотря на то что оно компилировалось) :
1>cl : командная строка warning D9007: для «/Gm» требуется «/Zi или /ZI»; параметр пропущен
Поставил в свойствах проекта флаг /ZI — и точки останова заработали.
Источник: ru.stackoverflow.com
Отладка сценариев с помощью Visual Studio
Перед тем, как Вы прочитаете эту статью, настоятельно рекомендуем прочесть, что из себя представляет отладка сценариев.
Язык c++ с нуля | #41 Отладка программы в visual studio.
Visual Studio обязательно должна быть коммерческой версии, версия Express не подходит!
Также для отладки подойдут версии Visual Studio 2013/2015 Community Edition.
Следует также отметить, что отладка возможна только на локальном компьютере. Подключение Visual Studio к удаленному серверу невозможно.
Статья содержит информацию об отладке сценариев с автоматическим переходом кода с помощью Visual Studio 2010/2013/2015. 1. Для начала отладки необходимо открыть Дизайнер ELMA, на вкладке Сценарии выбрать и открыть необходимую версию сценария, далее открыть раздел Отладка (Рис. 1). Рис. 1. Выбор версии сценария для отладки 2. При запуске отладки на экран будет выведено сообщение о необходимости снятия флажка Требовать точного совпадения исходной версии файлов (Require source files to exactly match the original version) в настройке отладки в Visual Studio (Рис. 2).
Рис. 2. Диалоговое окно «Информация о настройках отладки». Флажок «Требовать точного соответствия исходной версии файлов» 3. Далее необходимо нажать кнопку Продолжить, после чего скрипт откроется в Visual Studio. Далее необходимо перейти в раздел Отладка (Debug) и открыть Параметры (Options) (Рис. 3).


Риc. 5. Пункт «Присоединиться к процессу» контекстного меню Debug 6. После этого появится окно со списком процессов, запущенных в операционной системе на локальном компьютере, на котором установлена система ELMA (Рис. 6).
- EleWise ELMA.WebServer.Service.exe – выберите этот процесс, если ELMA установлена на внутреннем сервере Cassini;
- w3wp.exe– выберите этот процесс, если ELMA установлена на сервере IIS;
- Если в списке нет ни одного из указанных выше процессов, то установите флажок в левом нижнем углу Показать процессы, запущенные всеми пользователями (Show process from all users) – необходимые процессы появятся в текущем списке.
7. Далее запускается отладка. Добавляем Точку останова (Breakpoints). Подробнее о создании точек останова см. соответствующую страницу справки (в Visual Studio всё аналогично как и во внутреннем отладчике) (Рис. 7).
Рис. 7. Добавление точки останова
8. Далее в веб-приложении требуется запустить необходимый процесс (Рис. 8).
Рис. 8. Диалоговое окно выбора процесса для запуска в веб-приложении ELMA
9. Когда мы дойдем до того участка процесса, где будет исполняться код, Visual Studio автоматически переключится на передний план (то есть поверх всех остальных окон) (Рис. 9).
10. Добавление переменных к просмотру осуществляется следующим образом (Рис. 10, 11):
- выделяем необходимую для просмотра переменную;
- открываем консольное меню (правой кнопкой мыши);
- выбираем Добавить контрольное значение (Add Watch);
- выбранная нами переменная появляется в списке просмотра.
Команды отладки в Visual Studio 2013/2015:
- запуск программы под отладчиком/продолжение после точки останова – F5;
- шаг без захода внутрь метода (Step Over) – F10;
- шаг с заходом внутрь метода (Step Into) – F11;
- выполнение инструкций вплоть до выхода из текущего метода. (Step Out) – Shift+F11.
Источник: www.elma-bpm.ru
VS2012: точка останова в ntdll.dll при запуске отладчика без дополнительной информации
Иногда, когда я запускаю / отлаживаю свое приложение в режиме отладки, используя VS2012, я получаю диалог:
Он не содержит никакой другой информации, поэтому я нажал на паузу, чтобы посмотреть, что происходит. О, но тогда я получаю «wntdll.pdb не загружен», и никакой другой информации о проблеме. Стек вызовов указывает на ntdll.dll, и кажется, что мое приложение еще даже не начало выполнение на данный момент.
Выбор продолжить на этом этапе позволит приложению / отладчику продолжить работу как обычно.
Это происходит очень часто (около 7 запусков из 10). Я использую Windows 8 (64-разрядную версию) и Visual Studio 2012 с обновлением 1.
Ранее у меня были Windows 7 (64-разрядная версия) и VS2010, и я никогда не сталкивался с этой проблемой. Этот конкретный проект был обновлен с версии, в которой он был создан (2010), так что, возможно, это часть проблемы.
Кто-нибудь сталкивался с этой проблемой раньше? Я понятия не имею, с чего начать искать причину. Хотя я использую 64-битную Windows, я должен отметить, что я создаю 32-битное приложение.
Обновить:
После включения серверов Microsoft Symbol вот так выглядит стек вызовов:
Я должен также добавить, на всякий случай, что у меня определенно есть Точки останова не установлены вручную в любом месте моего кода.
Решение
Эта досадная проблема связана с ошибкой в Visual Studio:
Происходит то, что мы неправильно обрабатываем несколько загрузчиков
события точки останова от разных процессов одновременно. ОС
запускает точку останова загрузчика, как только процесс запущен и работает, но
прежде чем любое выполнение может иметь место для отладчиков для создания экземпляров
точки останова и другие действия. Обычно мы успешно игнорируем
эти (по крайней мере, в случае единственного запуска). Вы можете обойти это
путем отключения флажка «Разорвать все процессы, когда один процесс прерывается» в «Инструменты-> Параметры-> Отладчик». Также обратите внимание, что это не
фатальная ошибка. Мы просто останавливаемся у внутреннего взломщика, и вы можете
просто нажмите F5 снова, чтобы продолжить.Это условие гонки, поэтому нам будет нелегко отследить и
использование мультизапуска в VS довольно низкое, поэтому я не буду это исправлять
при условии, что обходной путь выше будет достаточно хорош, чтобы разблокировать вас
и мы вернемся к этому, если мы увидим больше отчетов от дополнительных
клиентов. Это звучит разумно для вас?Еще раз спасибо за отзыв.
Марк Пейн Visual Studio Технический менеджер по отладке
Я следовал совету по отключению флажка «Разорвать все процессы при разрыве одного процесса» в настройках отладчика Visual Studio, и это «устранило» проблему на данный момент.
Возможно, если мы сможем заставить еще несколько человек сообщить о той же самой проблеме / раздражении этой ошибки, Microsoft в конечном счете исправит это, как они предлагают.
Другие решения
Если вы запускаете приложение в отладчике, автоматически запускается точка останова, как только начинается процесс. Эта точка останова дает вам возможность установить дополнительные точки останова до того, как процесс начнет выполняться. Если вам это не нравится, обычно в отладчике есть возможность игнорировать начальную точку останова по умолчанию. Например, в cdb вариант -g .
Я только что столкнулся с подобной проблемой, хотя, это был мой стек вызовов:
ntdll.dll!LdrpDoDebuggerBreak() ntdll.dll!LdrpInitializeProcess() ntdll.dll!_LdrpInitialize() ntdll.dll!LdrInitializeThunk()
В моем случае в моем Visual Studio Solution есть несколько проектов, для трех из которых в настройках «Запуск нескольких проектов» установлено «Запускать и отлаживать».
Два из начальных проектов — (Неуправляемый) C ++, и один из них — C #. Мне удалось избавиться от этой точки останова при запуске, открыв свойства проекта для проекта C # и включив «отладку собственного кода».
редактироватьПо-видимому, это не полностью решило мою проблему, а только значительно уменьшило частоту его возникновения. Тем не менее, я думаю, что то же самое общее решение все еще может это исправить.
Один из других проектов в этом решении — это просто готовый двоичный файл, который запускается путем ручного указания двоичного файла в качестве проекта. TargetPath ,
Изменение Debugger Type в Native Only в проекте Debugging страница свойств, похоже, тоже помогла.
Итак, смена и то и другое из них, кажется, фактически решил проблему для меня.
Посмотрите, включили ли вы вхождение в отладчик при исключениях первого шанса.
Вы можете увидеть это в разделе «Отладка / Исключения …». Посмотрите, отмечены ли какие-либо из полей. (По крайней мере, это было расположение меню в старых версиях VS — у меня нет VS 2012 в настоящее время)
Если этот параметр включен, это приводит к сбою отладчика при возникновении исключения, даже если оно может быть правильно обработано приложением. Если отключено, отладчик прерывается только тогда, когда исключение не обрабатывается. Если какие-либо исключения проверены, попробуйте снять их и посмотреть, если это не исчезнет.
Источник: web-answers.ru