我有一个用C编写的程序。它可以成功编译并运行正常,但是恰好在main()的末尾,它崩溃了,并给了我Abort trap: 6错误。

我没有丝毫线索可以调试它。关于SO与Abort trap: 6错误有关的几个问题对我没有太大帮助。

一般来说,可能是什么问题?

(我现在不愿意发布我的源代码,因为它大约有400行代码。如果我知道要查找的内容,那么我将发布特定的代码块。)

注意:我正在使用GCC在Terminal中运行该程序。但是,当我在XCode中运行它时,我的程序崩溃了,如果我停止它,它就会以exit code: 9结尾。

这是lldb的输出:

Process 1191 stopped
* thread #1: tid = 0xa759, 0x00007fff8fa08286 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00007fff8fa08286 libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill + 10:
-> 0x7fff8fa08286:  jae    0x7fff8fa08290            ; __pthread_kill + 20
   0x7fff8fa08288:  movq   %rax, %rdi
   0x7fff8fa0828b:  jmp    0x7fff8fa03c53            ; cerror_nocancel
   0x7fff8fa08290:  retq

最佳答案

您正在可能是正在写入您不拥有的内存!但是您知道,如果没有代码,我们不能说更多,但是我明白了为什么您不发布它。

Similar question

我建议您再次仔细阅读您的代码,并注意计数器和索引(名为ij的变量等)。
Exit code 9闻起来像信号处理出错。检查this问题。

关于c - 中止陷阱: 6 in C Program,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29401116/

10-11 22:35
查看更多