【发布时间】:2011-03-29 08:44:04
【问题描述】:
在我的 C++ 程序中,我使用了一个库,它会“发送?”特定操作的 Sigtrap 时 我正在调试它(使用 gdb 作为调试器)。然后我可以选择是要继续还是停止程序。如果我选择继续,程序按预期工作,但在捕获 Sigtrap 后设置自定义断点会导致调试器/程序崩溃。
所以这是我的问题:
- 是什么导致了这种 Sigtrap?它是可以删除的剩余代码行,还是由调试器“发现他不喜欢的东西”引起的?
- 一般来说,信号陷阱是一件坏事,如果是,为什么当我编译发布版本而不是调试版本时程序可以完美运行?
- Sigtrap 表示什么?
这是我昨天发布的问题的更通用方法 Boost Filesystem: recursive_directory_iterator constructor causes SIGTRAPS and debug problems。
我认为我的问题很具体,我不希望您解决我的问题,而是帮助我(希望其他人)了解背景。
非常感谢。
【问题讨论】:
-
这可以解释无法解释的 SIGTRAP:stackoverflow.com/questions/2307621/…
-
这个线程中的信息看起来很有希望。我正在使用的库(boost::filesystem)也需要将静态 dll 链接到程序。所以我认为我有问题,包括以错误的方式,或使用错误的 dll....