addr2line 输出为?:0可能原因
addr2line ??:0可能原因
- addr2line ??:0可能原因
- 问题重现
- 问题解决
- 思考
addr2line ??:0可能原因
问题重现
- 编写一个异常程序(除零异常)
//test.c #include <stdio.h> void crash(void) { int i=0; int j=1; int k=j/i; } int main() {crash();return 0; }
- 编译
gcc -o test -g test.c
- 运行
./test
- 查看崩溃地址
root@linx:/var/testhelper/programsymbols/root/test# dmesg -C root@linx:/var/testhelper/programsymbols/root/test# ./test Floating point exception root@linx:/var/testhelper/programsymbols/root/test# dmesg [3540868.730553] traps: test[4331] trap divide error ip:55d347e5067b sp:7ffdb3499f50 error:0 [3540868.730567] in test[55d347e50000+1000]
- 使用addr2line找出崩溃地址对应行。
如果直接按照网上大多数说的ip后面的地址即是addr2line的输入的地址参数那么…就会出现输出为??:0的问题:root@linx:/var/testhelper/programsymbols/root/test# addr2line -e test 55d347e5067b ??:0
问题解决
其实就是最后面addr2line输入的地址并非其所接受的地址,addr2line接受的地址是相对偏移地址,例如作者的测试的系统为凝思系统,它dmesg输出的ip并非是崩溃地址相对偏移地址,需要减去基地址,即
55d347e5067b-55d347e50000=00000000067b,然后再使用addr2line工具分析
root@linx:/var/testhelper/programsymbols/root/test# addr2line -e test 00000000067b
/var/testhelper/programsymbols/tes.c:8
可以看到地位到了第8行。
思考
dmesg 输出ip对应的内容不同的操作系统内核含义可能不同,centos8测试输出ip地址即为相对偏移地址可以直接传给addr2line使用。两个方面:1.addr2line接受的参数含义(相对偏移地址)2.传入的地址是否为相对偏移地址(这里是dmesg输出的ip对应地址)。
ok,还是得多思考一下。
addr2line 输出为?:0可能原因相关推荐
- int输出%f浮点值是0,double/float 浮点数%d输出0的原因
#include <cstdio> using namespace std; int main() {int a = 3;printf("int a print float : ...
- CvSVM::EPS_SVR train_auto assertion sv_count != 0 failed原因
CvSVM::EPS_SVR train_auto assertion sv_count != 0 failed原因: 出现这种情况,一般表示你的训练集和结果数据集,没有输入到你的Mat结构中,如果用 ...
- JavaScript中的ParseInt(08)和“09”返回0的原因分析及解决办法
今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时 ...
- oracle当查询没有输出返回0,[数据库] Oracle单表查询总数及百分比和数据横向纵向连接...
这是最近项目关于SQL语句的,本文简单记录并总结以下几个知识点: 1.如何统计一张表中某个字段的总数,如不同"专业"的学生数及所占百分比: 2.如何联系另一张表进行查询某个字段的总 ...
- 电压比较器电路,当两个输入端全是相同电平时,输出什么电平?则相当于差模输入电压为零,不考虑失调或共模输出就应该输出为0
运放开环使用是电压比较器,不是电平比较器.高电平的电压范围很宽,TTL电路中1.4+到5V全是高电平,1.4-到0V全是低电平,所以两个输入端全是高电平或全是低电平还要看电压谁高谁低.如果是两个输入端 ...
- C语言:根据整型形参m的值,计算如下公式的值: T=1-1/2x2-1/3x3...1/mxm; 例如,若m中的值为5,则应输出:0.536389。
#include <stdio.h> /* 6.下列给定程序中,函数fun的功能是:根据整型形参m的值,计算如下公式的值. T=1-1/2x2-1/3x3-1/mxm; 例如,若m中的值为 ...
- caffe中batchnormal层的param参数lr_mult和decay_mult都为0的原因
如下截取一部分train.prototxt的片段: layer { name: "conv2_em/bn" type: "BatchNorm" bo ...
- python输出多个随机数_python怎么输出从0到100内的多个随机数
python如何一次性取出多个随机数 怎么样用python做个程序.生成一个随机数构成的列表小编的口是心非,小编的言外之意,小编的无心之处,如果你懂. 请高手指教下.怎么样用python做个程序.生成 ...
- vue设置scrollLeft 一直为0的原因
问题描述 <div class="icontent" ref="icontent" ><div class="box" r ...
最新文章
- css中的display属性之li元素
- Winograd,GEMM算法综述(CNN中高效卷积实现)(下)
- 【机器学习】HOG+SVM进行车辆检测的流程及源码
- 深度学习 vs SLAM
- ios两张图片的合并
- html媒体查询怎么把颜色换成图片,为网页中图片src添加媒体查询功能。
- Android中对话框的工具类
- C++之private虚函数
- rtt面向对象oopc——5.IO设备管理之快速查看设备父类调用设备子类的方法
- 模型加速:WAE-Learning a Wavelet-like Auto-Encoder to Accelerate Deep Neural Networks
- android volley post 参数,带有标题和正文的Android Volley POST请求
- MongoDB聚合(二)
- Python HackerRank 刷题 Pairs
- 6亿融资,今麦郎有底气上市吗?
- vc830l 说明书_有了解vc830l万用表使用方法的吗?
- k8s iptable升级到ipvs
- [计算机数值分析]直线拟合的最小二乘法
- 并发编程系列之Semaphore
- python之json数据库
- Linux-凝思6.0.80磐石网络配置-亲测过