当前位置: 技术问答>linux和unix
关于从message中定位程序错误的问题
来源: 互联网 发布时间:2016-11-03
本文导语: 我的程序在运行的过程中报错了,从message下看到了这样的错误,请问我该如何定位到是哪一句报错的呢? Jan 7 09:50:13 localhost kernel: myapp[9776]: segfault at 00002aaaac110910 rip 00002aaaac110910 rsp 000000004033fe08 error 15 Ja...
我的程序在运行的过程中报错了,从message下看到了这样的错误,请问我该如何定位到是哪一句报错的呢?
Jan 7 09:50:13 localhost kernel: myapp[9776]: segfault at 00002aaaac110910 rip 00002aaaac110910 rsp 000000004033fe08 error 15
Jan 7 11:58:57 localhost kernel: myapp[12179]: segfault at 000000000454d2c0 rip 000000000454d2c0 rsp 00000000421e2e08 error 15
我查了一些文章,有的说用nm objdump readelf,我没大搞明白和我定位这个错误有啥关系,请高手指点一下,或者给说一个文章自己看看也行,提供一个查找的方向吧,谢谢!
还有几个问题就是:
1.rip和rsp前后的那一串是地址吗?是什么的地址呢?两次出错的地方是一样的,如果能从这里定位到程序报错函数的话上述地址应该有一样的地方才对,是不是那是出错时的地址啊?
2.error 15中的15从哪里能找到具体15代表什么错误呢?我google的时候发现有些是报error 4的。感觉是不是有个错误列表能查看一下。
程序是debug的,我从生成的dump文件中已经知道是哪个地方报错了,现在就想知道能不能从message中能不能找到,如果不能,message能告诉我些什么。
Jan 7 09:50:13 localhost kernel: myapp[9776]: segfault at 00002aaaac110910 rip 00002aaaac110910 rsp 000000004033fe08 error 15
Jan 7 11:58:57 localhost kernel: myapp[12179]: segfault at 000000000454d2c0 rip 000000000454d2c0 rsp 00000000421e2e08 error 15
我查了一些文章,有的说用nm objdump readelf,我没大搞明白和我定位这个错误有啥关系,请高手指点一下,或者给说一个文章自己看看也行,提供一个查找的方向吧,谢谢!
还有几个问题就是:
1.rip和rsp前后的那一串是地址吗?是什么的地址呢?两次出错的地方是一样的,如果能从这里定位到程序报错函数的话上述地址应该有一样的地方才对,是不是那是出错时的地址啊?
2.error 15中的15从哪里能找到具体15代表什么错误呢?我google的时候发现有些是报error 4的。感觉是不是有个错误列表能查看一下。
程序是debug的,我从生成的dump文件中已经知道是哪个地方报错了,现在就想知道能不能从message中能不能找到,如果不能,message能告诉我些什么。
|
error 15
可以从头文件errno.h中查找具体含义
find /usr/include -name "errno.h"|xargs grep -w 15
可以从头文件errno.h中查找具体含义
find /usr/include -name "errno.h"|xargs grep -w 15