最近我遇到了段错误问题,它在调用delete方法时被击中。我已深入检查了代码,并消除了删除空指针,多次删除或超出限制的可能性(分配的内存足够大以容纳之后写入的内容)。这个问题可以被复制,每次它在同一个地方发生段错误。段错误代码的可能原因是什么
我想尽办法可能会导致此问题。我不知道是否有可能得到错误代码的一些线索,我得到,如: - 段错误的XXXXXXXXXXXXXX撕裂XXXXXXXXXXXXXX RSP XXXXXXXXXXXXXX错误4
我搜索过网了相当长的时间,只得到有用以下信息来自stackoverflow: -
“错误代码只是页面错误的体系结构错误代码,似乎是特定于体系结构的,它们通常记录在内核源代码的arch/*/mm/fault.c中。 Linux/arch/i386/mm/fault.c的副本具有以下error_code的定义:
bit 0 == 0 means no page found, 1 means protection fault
bit 1 == 0 means read, 1 means write
bit 2 == 0 means kernel, 1 means user-mode
“
这是我的问题: - 错误代码4(我的平台是RHEL5 64位,x86_64)的可能原因是什么?有什么办法可以从错误代码中知道可能的原因吗?
有关如何诊断这类问题的任何其他建议也受到赞赏!
在'valgrind'下运行你的程序。 –
删除空指针不是问题。 – ldav1s