中止陷阱:C 程序中的 6 个
Posted
技术标签:
【中文标题】中止陷阱:C 程序中的 6 个【英文标题】:Abort trap: 6 in C Program 【发布时间】:2015-06-06 17:01:39 【问题描述】:我有一个 C 程序。它编译成功并且运行良好,但在 main()
结束时,它崩溃并给我一个 Abort trap: 6
错误。
我对如何调试它一无所知。关于 SO 与 Abort trap: 6
错误有关的几个问题对我没有多大帮助。
一般来说,可能是什么问题?
(我现在不愿意发布我的源代码,因为它大约有 400 行代码。如果我知道要查找什么,我会发布一段特定的代码。)
注意:我在终端中使用GCC
运行程序。但是当我在 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
【问题讨论】:
你是如何运行程序的?这看起来不像是普通的 Unix shell 错误消息。 @Barmar 使用GCC
编译它并在OSx
上运行它。
你是如何运行程序的?从终端窗口,还是使用 XCode?span>
你试过用-g编译并用gdb运行吗?还;你在处理信号吗?
尝试使用 valgrind。
【参考方案1】:
您可能在写入不属于您的内存!但是你知道没有代码我们不能说更多,但我明白你为什么不发布它。
Similar question
我建议再次仔细阅读您的代码,并注意您的计数器和索引(变量名为 i
、j
等等)。
Exit code 9
闻起来像是信号处理出错了。检查this问题。
【讨论】:
还有其他网页可以发布大代码,然后在此处放置代码链接。 是的@user3629249,但最好在这里发布代码,因为链接可能会失效。以上是关于中止陷阱:C 程序中的 6 个的主要内容,如果未能解决你的问题,请参考以下文章
我无法按字母顺序对文件中的“姓氏”进行排序:我得到中止陷阱:6