关于用addr2line解析函数地址的一个小探索

最近知道用dmesg和addr2line配合能定位出段错误的具体行。于是自己做了个小实验,在试验中发现,这个办法有时候也是不灵光的,具体取决于段错误的类型。

我写的小程序:

编译之后运行出现段错误,先用dmesg命令找到出错的地址,再用addr2line定位行数,发现定位失败了。看来这种段错误用这种方法是不可行的。

以下是从网上找到的内容:

Addr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。

dmesg 命令:

语  法:dmesg [-cn][-s <缓冲区大小>]

补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。

参  数:

 -c  显示信息后,清除ring buffer中的内容。

 -s<缓冲区大小>  预设置为8196,刚好等于ring buffer的大小。

 -n  设置记录信息的层级。

dmesg命令主要用途

主要应用:

dmesg用来显示内核环缓冲区(kernel-ring buffer)内容,内核将各种消息存放在这里。在系统引导时,内核将与硬件和模块初始化相关的信息填到这个缓冲区中。内核环缓冲区中的消息对于诊断系统问题 通常非常有用。在运行dmesg时,它显示大量信息。通常通过lessgrep使用管道查看dmesg的输出,这样可以更容易找到待查信息。例如,如果发现硬盘性能低下,可以使用dmesg来检查它们是否运行在DMA模式:

$dmesg | grep DMA

时间: 2024-09-30 05:50:02

关于用addr2line解析函数地址的一个小探索的相关文章

基于宿主机制作一个小系统

一.Linux系统的启动流程 1.启动程序 Linux系统的启动流程为:POST-->BIOS(BootSequence)-->MBR(bootloader,446)--> Kernel-->initrd-->(ROOTFS)/sbin/init(/etc/inittab). 首先上电自检POST:它负责完成对CPU.主板.内存.软硬盘子系统.显示子系统(包括显示缓存).串并行接口.键盘.CD-ROM光驱等的检测.主要检查硬件的好坏. 紧接着就是BIOS进行硬件相关初始化,之

使用eval()将json字符串转换为对象要多加一个小括号

使用eval()将json字符串转换为对象要多加一个小括号:关于eval()函数的具体用法这里就不多介绍了,具体可以参阅javascript的eval()方法一章节,下面就介绍一下为什么使用eval()函数将json格式字符串转换为对象的时候,需要多嵌套一层小括号,下面就介绍一下它的原因,希望能够对需要的朋友带来帮助.先看一段转换代码: var jsonStr='{"webName":"蚂蚁部落","webAddress":"青岛市南区

java split的一个小问题

今天测试人员提了一个小需求,ip地址A.B.C.D ,ABCD任意一个域为空时当做0处理.例如  192... ,后台当做192.0.0.0处理. 我想到的方法是用字符串的split方法,首先取得ABCD四个域的值,假设text1为ip地址控件取得的实际文本值,text2为转换后的值. String text1 = "192...";String[] fields = text1.split("\\.");System.out.println(Arrays.toSt

基于netty4的tcp消息转发服务--外包接的一个小项目

git地址 https://git.oschina.net/cggxx/CubeBox.git 分包 tcp分包采用的格式是 消息类型两个字节 | 内容长度两个字节 | 内容 长连接 tcp长连接使用心跳保证连接 连接验证 和客户端约定验证算法,具体看代码. 这是个人接的一个小项目,现在已经上线,连接物联网用的,由于交了代码后,没拿到钱,于是就当小项目开源了.本来打算用zookeeper建立集群的,后来懒,整了一半没弄完,以后再加

【开源一个小工具】一键将网页内容推送到Kindle

最近工作上稍微闲点,这一周利用下班时间写了一个小工具,其实功能挺简单但也小折腾了会. 工具名称:Simple Send to Kindle Github地址:https://github.com/zhanjindong/SimpleSendToKindle 功能:Windows下一个简单的将网页内容推送到Kindle的工具. 写这个工具的是满足自己的需求.自从买了Kindle paperwhite 2,它就成了我使用率最高的一个电子设备.相信很多Kindle拥有者和我一样都有这样一个需求:就是白

电商总结(八)如何打造一个小而精的电商网站架构

前面写过一些电商网站相关的文章,这几天有时间,就把之前写得网站架构相关的文章,总结整理一下.把以前的一些内容就连贯起来,这样也能系统的知道,一个最小的电商平台是怎么一步步搭建起来的.对以前的文章感兴趣的朋友可以看这个,http://www.cnblogs.com/zhangweizhong/category/879056.html 本文大纲: 1. 小型电商网站的架构 2. 日志与监控系统的解决方案 3. 构建数据库的主从架构 4. 基于共享存储的图片服务器架构 5. 移动M站建设 6. 系统容

有关autoresizingMask属性遇到的一个小问题

前言:在讲述这个小问题之前,我们有必要先了解一下UIViewAutoresizing的有关属性概念和使用详解. 参考:自动布局之autoresizingMask使用详解(Storyboard&Code)     现在已经不像以前那样只有一个尺寸,现在最少的iPhone开 发需要最少需要适配三个尺寸.因此以前我们可以使用硬坐标去设定各个控件的位置,但是现在的话已经不可以了,我们需要去做适配,也许你说可以使用两套UI 或两套以上的UI,但那样不高效也不符合设计.iOS有两大自动布局利器:autore

Spring.Net在ASP.NET Mvc里使用的一个小例子

就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里搜索spring.web.mvc,它会自动下载SpringNet的引用包. 安装完成之后你的项目会多三个引用,项目目录../packages文件夹下面也会多出这三个文件夹里面是SpringNet的文件. 2.写代码例子 很简单的例子.定义一个接口,一个对于接口的实现类. namespace MvcA

用android去写一个小程序

前言: 软工的一个小作业:实现"黄金分割小游戏", 需要结对编程,队友:陈乐云(http://www.cnblogs.com/clyln/),用时两天. 早期思路设计: 采用键值对的形式,以Map作为存储结构.优点:能够将数据与用户对应,缺点:采用java实现过于复杂,工程量过大,需要消耗大量资源,类型转换容易出错. 后期思路设计: 采用二维数组:第一行用于存储用户输入原始数据,第二行用于存储中间数据(第一行的与G值做差的绝对值),第三行用于保存用户得分. 优点:实现简单,易于运算 分