kacy16 发表于 2015-04-16 09:30

gdb调试coredump文件的问题?

       开发了一服务程序,开发运行环境是(CentOS56.0(linux-2.6.2x), 开发语言c++,内部开了5个线程),
编译时未加 -g选项。 该服务程序其中一重要功能是采用tcp通信方式接收发送数据(从本机其他进程接收,发送),
在运行一段时间后,发现程序运行时不是很正常,有一些TCP数据信息包未能接收到。
      该服务程序并未崩溃,还是在正常运行。然后,我通过运行gcore pid的方式产生一个coredump文件,
之前已经通过 ulimit -c unlimit 命令取消了coredump文件大小的限制,使用gdb 去分析coredump文件,
可以查看到全局变量的地址与内容,但是对于main函数内的局部变量的地址与内容则无法查看。
      例如,我通过重新编译该服务程序,输出并知道了main函数内的局部变量conns的地址为0xbf9989dc,
使用再使用gdb去分析coredump文件,使用命令 x/d 0xbf9989dc 命令去查看变量conns的数值,
但是gdb报告 cannot acccess memory at address 0xbf9989dc,无法访问该地址。
请问,该如何通过该coredump文件得到main函数内的局部变量的数值?先谢谢各位的关注与帮助。
页: [1]
查看完整版本: gdb调试coredump文件的问题?