В моей программе на C++ я использую библиотеку, которая будет «отправлять»? Сигтрап при определенных операциях, когда Я отлаживаю его (используя gdb в качестве отладчика). Затем я могу выбрать, хочу ли я продолжать или останавливать программу. Если я решила продолжить работу, программа работает так, как ожидалось, но установив пользовательские точки останова после захвата Sigtrap, приведет к сбою отладчика/программы.Что вызывает сигстрап в отладочной сессии
Так вот мои вопросы:
- Что вызывает такое SIGTRAP? Это остаточная строка кода, которая может быть удалена или вызвана отладчиком, когда он «находит что-то, что ему не нравится»?
- Является сигстрапом, вообще говоря, плохой, и если да, то почему программа работает безупречно, когда я компилирую Release, а не Debug Version?
- Что указывает Сигтрап?
Это более общий подход к вопросу, который я разместил вчераBoost Filesystem: recursive_directory_iterator constructor causes SIGTRAPS and debug problems.
Я думаю, что мой вопрос был далеко не конкретным, и я не хочу, чтобы вы решали мою проблему, но помогли мне (и, надеюсь, другим) понять фон.
Большое спасибо.
Это может объяснить необъяснимые SIGTRAP: http://stackoverflow.com/questions/2307621/does-getting-random-sigtrap-signals-in-mingw-gdb-is-a-sign-of-memory-corruption – sarnold
Информация в этой теме выглядит многообещающей. Библиотека, которую я использую (boost :: filesystem), требует, чтобы статические DLL-файлы также были связаны с программой. Поэтому я предполагаю, что есть проблема со мной, включая неправильный путь, или с использованием неправильных библиотек .... – zitroneneis