#c builder
#c builder
Вопрос:
У меня есть проект (недавно запущенный), в котором C Builder не останавливается ни на одной из точек останова. Я убедился, что нахожусь в режиме отладки (не выпуска), компоновщик-> Полная информация об отладке = True, компилятор C -> Конфигурация отладки, компилятор C -> Отладка-> Информация об отладке = true, информация о номере строки отладки = true, развернуть встроенные функции = true.
Я не вмешивался ни в какие настройки компилятора / компоновщика для этого проекта. И я пробовал это с двумя разными версиями компилятора, но в обоих случаях точки останова не прерываются. Я попытался добавить:
{ _asm { int 3 } } и когда программа запустилась, она нажала на нее несколько раз, поэтому я знаю, что код выполняется. (Кроме того, я разместил кучу точек останова повсюду, и они тоже не работают.
Есть идеи?
Комментарии:
1. @UncaAlby: это не относится к C Builder, где отладчик интегрирован в IDE.
2. Видите ли вы синюю метку в желобе (слева) редактора кода на строках, где вы устанавливаете точку останова? Если нет, то это указывает на код, который не будет выполнен.
3. @KenWhite в таком случае не обращайте внимания на мой комментарий.
4. @KenWhite, в канаве нет никаких синих отметин. Только номера строк и хэш-метки номера строки. Точки останова красные.
5. В желобе должны быть синие точки для строк, для которых не установлены закладки. Если их там нет, то компилятор не видит их как строки, в которых может быть установлена точка останова. Вы пробовали выполнить полную сборку своего проекта, убедившись, что все настроено для отладки? (Не просто компиляция, а Проект-> Сборка?)
Ответ №1:
Я получаю ту же ошибку или что-то очень похожее. Чтобы подробно описать, что происходит со мной, я запускаю свой проект в режиме отладки, программа, кажется, останавливается на точке останова, но это сбой приложения (независимо от положения точки останова). Во время выполнения программы у меня нет синих точек ни в одной строке моего кода. Я работаю с C builder 10.4 и использую 64-разрядную версию Windows.
Решение, которое я использовал, заключается в повторной компиляции всего моего проекта. Я не могу воспроизвести ошибку, поэтому не могу сказать, является ли это решением или просто удачным выстрелом.
Еще один момент, до этой ошибки мой проект уже был успешно запущен в режиме отладки. Ошибка появляется время от времени и кажется случайной. Я могу получить эту ошибку без изменения какой-либо строки или параметра проекта.
Ответ №2:
для этого есть 2 причины (будьте осторожны, синие точки видны только тогда, когда ваша программа запущена!):
- Ваш код не выполняется
если вы поставите точку останова на материале, который никогда не выполнялся, он никогда не остановится. Также некоторые строки, как правило, оптимизируются, поэтому иногда помогает отключить оптимизацию во время отладки.
- Ваш файл проекта испорчен
это происходит время от времени. Обычно помогает:
- удалите все временные файлы
*.tds,*.map,*.obj*.exe
в вашем проекте - переместите
#pragma hdrstop
строку в зараженном файле в другое местообычно вам нужно попробовать больше местоположений, пока это не сработает … в основном, проходя несколько строк даже после всех включений.
- сохраните все файлы, а затем скомпилируйте и запустите
Если в левой части кода появляются синие точки, ваш проект исправлен, и вы можете переместить
#pragma hdrstop
его в исходное местоположение. - удалите все временные файлы
Однако иногда ничего не помогает. В таком случае создайте новый проект. Это имитирует ваш старый (номер формы и имена), а затем просто скопируйте *.bdsproj
файл в ваш старый.
Рекомендуется создать резервную копию вашего рабочего файла проекта, поскольку IDE, как правило, иногда его ломает (это редко, но это случается)
В случае, если у вас другая версия компилятора, используйте расширения ваших файлов (они их немного изменили)
Ответ №3:
Вы забыли указать, какую версию вы используете, но я предполагаю, что она более старая, а ваш проект 64-разрядный. Я сам столкнулся с этой ошибкой. С тех пор они исправили это, но 64-разрядный отладчик C Builder по-прежнему практически бесполезен для более крупных проектов (т. Е. Точки останова снова работают, но отладчик завершает работу после первой точки останова). Обновите до 10.4 Обновление 1, просто не ожидайте слишком многого, если вы не работаете с небольшими однопоточными проектами.
Ответ №4:
Комментарии:
1. Добро пожаловать в Stack Overflow! Пожалуйста, сформулируйте это как объясненный условный ответ, чтобы избежать впечатления, что вы задаете уточняющий вопрос вместо ответа (для которого вместо ответа следует использовать комментарий, сравните meta.stackexchange.com/questions/214173 /… ). Например, как «Если ваша проблема … тогда решение состоит в том, чтобы …. потому что …. .»