当前位置: 技术问答>linux和unix
linux下面线程死掉如何获取PC指针?
来源: 互联网 发布时间:2016-09-26
本文导语: 现在做嵌入式linux开发,如何在一个应用程序死掉的时候能够获取到此程序的PC指针,如果能够获取,那么我们就可以通过ELF文件找到具体死在哪个函数! 请大家指点! | 1、用ulimit -c 1024来...
现在做嵌入式linux开发,如何在一个应用程序死掉的时候能够获取到此程序的PC指针,如果能够获取,那么我们就可以通过ELF文件找到具体死在哪个函数!
请大家指点!
请大家指点!
|
1、用ulimit -c 1024来设置系统,使其能产生core文件。
2、运行程序,程序挂掉后,会产生core.xxxx(xxxx为进程号)的文件
3、用gdb --core=core.xxxx来启动gdb
4、用where命令找到错误发生的位置和堆栈。
2、运行程序,程序挂掉后,会产生core.xxxx(xxxx为进程号)的文件
3、用gdb --core=core.xxxx来启动gdb
4、用where命令找到错误发生的位置和堆栈。
|
可以自己写个函数处理程序的崩溃信号的,系统会传一个寄存器的结构指针过来,你说的pc就是eip寄存器的内容吧?
也可以自己打印一下调用堆栈的, 自己搜索一下类似“Linux调用backtrack函数”的,应该可以搜到例子
也可以自己打印一下调用堆栈的, 自己搜索一下类似“Linux调用backtrack函数”的,应该可以搜到例子