当前位置: 技术问答>linux和unix
gdb调试时遇到库函数有SIGSEGV错误
来源: 互联网 发布时间:2016-06-15
本文导语: 使用gdb跟踪一个程序,一般我都是按s单步执行到函数内部查看一下,但是遇到库函数,比如 getopt_long,就会出现错误“Program received signal SIGSEGV, Segmentation fault”,然后gdb就没法调试了。 为什么这...
使用gdb跟踪一个程序,一般我都是按s单步执行到函数内部查看一下,但是遇到库函数,比如 getopt_long,就会出现错误“Program received signal SIGSEGV, Segmentation fault”,然后gdb就没法调试了。
为什么这样?能不能像VC一样,没有源码可以跟踪到该函数的汇编代码中,或者怎样才能让我继续调试下去?
为什么这样?能不能像VC一样,没有源码可以跟踪到该函数的汇编代码中,或者怎样才能让我继续调试下去?
|
你用eclipse-cdt试一下吧,可以单步,查看变量...
gdb界面太不友好了,呵呵
gdb界面太不友好了,呵呵
|
用n步进
|
next跳过吧 库函数一般不会有问题 除非你的gcc版本和目标代码不匹配
|
用disassemble命令 可以查看源代码相应的汇编码
disassemble
或者也可以用命令显示寄存器的内容
info all-registers
info registers 查看指定的寄存器
但是源代码不会有问题吧。。。是不是参数有问题
disassemble
或者也可以用命令显示寄存器的内容
info all-registers
info registers 查看指定的寄存器
但是源代码不会有问题吧。。。是不是参数有问题
|
next 不要step
|
一路按n到这个函数的时候,按s进入函数体内部