当前位置: 技术问答>linux和unix
急求segment fault问题解决办法!
来源: 互联网 发布时间:2016-06-10
本文导语: 程序在linux下运行时会出segment fault 用gdb跟踪显示如下信息: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1449673824 (LWP 25860)] 0x006202dc in memcpy () from /lib/tls/libc.so.6 我知道是memcpy内存溢...
程序在linux下运行时会出segment fault
用gdb跟踪显示如下信息:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1449673824 (LWP 25860)]
0x006202dc in memcpy () from /lib/tls/libc.so.6
我知道是memcpy内存溢出
但程序里有好多memcpy,究竟是哪个地方异常的呢?
谁能帮忙解读出更详细的信息
或者谁有办法找出溢出的具体位置
还有,那个(LWP 25860)是什么意思??
不胜感激!
用gdb跟踪显示如下信息:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1449673824 (LWP 25860)]
0x006202dc in memcpy () from /lib/tls/libc.so.6
我知道是memcpy内存溢出
但程序里有好多memcpy,究竟是哪个地方异常的呢?
谁能帮忙解读出更详细的信息
或者谁有办法找出溢出的具体位置
还有,那个(LWP 25860)是什么意思??
不胜感激!
|
1. 你的程序编译时,是否加了 -g 选项。
2. 在gdb 里执行 bt 看看调用堆栈
2. 在gdb 里执行 bt 看看调用堆栈
|
where
|
对于Segmentation fault问题,可以通过ulimit -c 2048放开core文件限制,将生成的core文件用gdb查看(gdb -c core.11598 TransMain 这里的TransMain是可执行程序)。
编译的时候要加-g选项。
试试看
编译的时候要加-g选项。
试试看
|
gdb调试,错误之后使用 bt (backtrace) 命令就知道调用栈的情况了。