debug
tl_sunshine
这个作者很懒,什么都没留下…
展开
-
通过backtrace_symbols输出信息定位coredump位置
有时我们会在程序中检测:SIGSEGV信号,收到信号后,打印出当前的堆栈信息,进而方便我们定位出错的地方。方法如下:近期在线上环境中出现coredump后,打印如下的堆栈信息:/var/ytt/mod_se/lib/libqsrch.so(_ZN14ImplSrchWorker8OnSignalEi+0x6a) [0x2aabd5e80aca]03-29 09:36:15 ERROR [102...原创 2018-04-05 21:31:15 · 1885 阅读 · 0 评论 -
程序异常退出且没有任何coredump解决方法
如果程序异常退出而且没有任何信息,我们应该怎样做呢?我们可以attach到某个工作进程或者线程,之后同时对exit和_exit设置断点。之后对程序发压,如果程序出现异常,我们可能看到出现问题的堆栈。最近测试一个新写的模块,程序也异常退出了,没有任何的core信息,利用上面的方法没有解决问题。如下:通过在google上搜索,找到下面有用的网页:https://stackoverflow.com/qu...原创 2018-04-19 22:03:06 · 8476 阅读 · 0 评论 -
没打开coredump,利用dmesg调试core的方法
线上的机器为防止coredump把机器打死,通常都会把core关闭。如果线上机器出现core等问题,该怎样进行调试呢?通过dmesg可以解决上面的问题。首先输入dmesg看相应的输出信息,如下图: 把上面的地址做差值就得到相应的出问题的代码地址,如下图: 如果没有gdb也可以用下面的命令进行计算:echo "obase=16; $(echo $(( 16#7fc4...原创 2017-03-05 16:23:04 · 2756 阅读 · 1 评论