«Одна или несколько точек останова не могут быть установлены и были отключены. Выполнение остановится в начале программы». - PullRequest
4 голосов
/ 07 мая 2010

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

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

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

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

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

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

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

Ответы [ 4 ]

1 голос
/ 07 мая 2010

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

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

0 голосов
/ 21 августа 2017

щелкните правой кнопкой мыши проект >> настройки >> вкладка Ссылка проверка на создание информации отладки проверять ссылку постепенно

0 голосов
/ 11 апреля 2014

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

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

0 голосов
/ 07 мая 2010

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

Здесь - это сообщение парня, как он это исправил.

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

...