«Один или несколько точек останова не могут быть установлены и были отключены. Исполнение остановится в начале программы ».

StackOverflow https://stackoverflow.com/questions/2787999

  •  04-10-2019
  •  | 
  •  

Вопрос

Я установил точку останова в моем коде в Visual-C ++, но когда я бегу, я вижу ошибку, упомянутую в заголовке.

Я знаю, что этот вопрос был задан до переполнения стека (Точки останова не могут быть установлены и были отключены), но ни один из ответов там полностью объяснил проблему, которую я вижу. Самый близкий, который я вижу, это что-то о линкер, но я не понимаю этого - так что если кто-то мог бы объяснить более подробно, это было бы здорово.

В моем случае у меня есть 2 проекта Visual C ++ - Production DSW и Test Code DSW. Я загрузил и перестроил оба DSW в режиме отладки. Я хочу точку останова в производственном коде, который проходит через тестовые сценарии. Моя проблема - я получаю сообщение об ошибке при запуске тестового кода, потому что точка перерыва находится в производственном коде, который не загружен при запуске теста.

Рядом с началом тестового скрипта есть команда mytest_initialize (). Я представляю, что это уходит и загружает производственный DLL. Как только эта строка выполнила, я могу поставить точку останова в моем производственном коде и запустить, пока я не ударю его. Но это довольно раздражает, чтобы запускать на эту строку, установите точку останова и продолжайте каждый раз, когда я хочу запустить тест.

Поэтому я думаю, что проблема визуального C ++ не понимает, что два проекта связаны. Это проблема линкера? Что делает линкер и какие настройки я должен изменить, чтобы сделать эту работу?

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

Обновление 1] Я думаю, что Крис О определил проблему. Я добавлю дальнейшее обновление, если я могу отработать, как использовать настройки проекта, чтобы сделать эту работу.

Нет правильного решения

Другие советы

Похоже, вы используете VC6, поскольку вы упомянуете файлы DSW. Я думаю, что так же хорошо, как он входит в VC6, вы должны вручную добавить точку останова после того, как ваш модуль загружен из LoadLibrary. На самом деле, может быть установка отладки проекта, поэтому вы можете указать, какие DLL загружаются при отладке вашего проекта, что будет включена ваши точки останова при ударе F5.

Вы также можете попробовать прикрепить отладчик после того, как узнаете, что mytest_initialize () был вызван, что может сохранить ваши точки останова.

У меня иногда имел этот вопрос, но всегда передаю это с некоторыми заменами кода.

Здесь Это какой-то парень пост, как он исправил это.

Надеюсь, поможет.

В моем случае я решал это, установив проект DLL, содержащий точку останова в качестве активного проекта, и изменил настройки отладки для этого проекта (щелкните правой кнопкой мыши >> Настройки >> Отладка), чтобы указать на проект, который фактически работает и обращается к DLL. «Исполняемый для сеанса отладки:» и «Рабочий каталог:» должен быть установлен на исполняемый файл, который вы действительно хотите запустить и соответствующий каталог.

Надеюсь, это всякая помощь.

Щелкните правой кнопкой мыши проект >> Настройки >> Вкладка «Ссылка» Проверьте на генерацию отладки информации Проверьте ссылку постепенно

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top