【GNU】addr2line

ops/2024/11/20 10:11:50/

1、什么是addr2line

addr2line 是 GNU Binutils 工具集中的一个命令行工具,用于将程序中的地址转换为源代码中的文件名和行号。它在调试和问题定位中非常有用,尤其是在处理崩溃或 core dump 时。

2、常用选项

选项功能
-e <file>指定目标文件(可执行文件或库)。
-f显示函数名。
-C解码 C++ 函数名(即去除名称修饰)。
-s静默模式(仅显示文件名和行号)。
-p输出文件名和行号时包含完整路径(方便定位)。

3、 常用的功能

3.1 定位单个地址

假设有一个 C 程序:

#include <stdio.h>
void my_function() {printf("Hello, addr2line!\n");
}int main() {my_function();return 0;
}

 编译时加入调试信息:

gcc -g -o demo demo.c

 然后使用 objdump 获取函数地址:

objdump -t demo | grep my_function
0000000000401136 g     F .text  0000000000000016 my_function

 使用 addr2line 将地址转换为文件名和行号:

addr2line -e demo 0x401136
/path/to/demo.c:3

3.2 函数调用栈地址解析

假设有一个崩溃堆栈,如下所示:

Segmentation fault at address 0x401136

 可以使用 addr2line 定位问题:

addr2line -e demo -f -C 0x401136
my_function
/path/to/demo.c:3

3.3 批量解析多个地址

如果有多个地址可以一起解析:

addr2line -e demo 0x401136 0x40115f

http://www.ppmy.cn/ops/135206.html

相关文章

农村生活污水排水监测系统:助力乡村生态环境建设

在广袤的农村大地&#xff0c;清新的空气、绿色的田野和潺潺的溪流共同构成了美丽的乡村画卷。然而&#xff0c;随着农村经济的发展和生活水平的提高&#xff0c;农村生活污水的排放问题日益凸显&#xff0c;成为影响乡村生态环境的一个重要因素。为了有效解决这一问题&#xf…

全新UI H5购物商城系统存在前台任意文件上传漏洞

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…

移动端web页面调用原生jsbridge的封装

为了统一android端和ios端调用原生jsbridge方法统一&#xff0c;且web端不需要使用callback方式接收回调&#xff0c;特封装了以下js工具类&#xff1a; // 全局回调管理器 window.CallbackManager {callbacks: new Map(),registerCallback: function (callbackId, callback)…

小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现

项目运行 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境&#xff1a;Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

《深入理解 Spring MVC 工作流程》

一、Spring MVC 架构概述 Spring MVC 是一个基于 Java 的轻量级 Web 应用框架&#xff0c;它遵循了经典的 MVC&#xff08;Model-View-Controller&#xff09;设计模式&#xff0c;将请求、响应和业务逻辑分离&#xff0c;从而构建出灵活可维护的 Web 应用程序。 在 Spring MV…

16. 清理Python包管理工具(pip 和 conda)的缓存和冗余文件

这个专栏记录我学习/科研过程中遇到的一些小问题以及解决方案&#xff0c;一些问题可能比较蠢请见谅。自用&#xff0c;仅供参考。 ------------------------------------------------------------------------------------ 清理Python包管理工具&#xff08;pip 和 conda&am…

CentOS 7.9 搭建本地Yum源

yum&#xff08;Yellow Dog Updater&#xff0c;Modified&#xff09;是一个在Fedora、Centos、RedHat中的Shell前端软件包管理器。基于RPM包管理&#xff0c;能够从指定的服务器自动下载RPM包并且安装&#xff0c;可以自动处理依赖关系&#xff0c;并且一次安装所有依赖的软件…

【逐行注释】MATLAB的EKF和UKF例程与详细注释|附下载链接

例程简述 这是一个状态量为三维的MATLAB下的滤波程序&#xff0c;分成EKF&#xff08;扩展卡尔曼滤波&#xff09;和UKF&#xff08;无迹卡尔曼滤波&#xff09;两种&#xff0c;分别滤波后&#xff0c;显示滤波值的曲线、滤波误差的对比曲线、滤波误差的最大值、平均值、标准…