news 2026/4/16 11:02:27

objdump、nm、addr2line命令解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
objdump、nm、addr2line命令解析

代码

Set-Location 'D:\TBOX\SDK\QSR01A01_C_SDK_LTE_E_BETA20251225\qos_build\release\EC800ZCNLFR01A01M04_BETA0403_OCPU\DBG' $env:Path = 'D:\unirtos-toolchain\gcc-arm-none-eabi-10.2.1\bin;D:\unirtos-toolchain\bin;' + $env:Path cmd /c "where arm-none-eabi-objdump.exe" arm-none-eabi-objdump.exe -d -S --demangle --line-numbers ap_application.elf > ap_application.disasm.S arm-none-eabi-objdump.exe -h ap_application.elf > ap_application.sections.txt arm-none-eabi-nm.exe -n ap_application.elf > ap_application.nm.txt # 示例:用 nm 里真实存在的符号地址 0x00a62d28(ql_rtos_task_create) arm-none-eabi-addr2line.exe -e ap_application.elf -f -C 0x00a62d28 # 同一地址反汇编一小段(避免全量) arm-none-eabi-objdump.exe -d --demangle --line-numbers --start-address=0x00a62d28 --stop-address=0x00a62d28+0x120 ap_application.elf > example_ql_rtos_task_create.disasm.txt

你这段 PowerShell 脚本的核心目的是:切换到指定的固件编译输出目录,配置 ARM 嵌入式工具链的环境变量,然后使用 ARM 官方工具链中的objdumpnmaddr2line等工具,对嵌入式固件文件ap_application.elf进行反汇编、符号分析和地址溯源,是嵌入式开发中调试固件、定位代码问题的典型操作。

下面我先整体解释脚本的作用,再重点拆解你关心的objdumpnmaddr2line命令。

脚本整体执行流程

  1. Set-Location:切换到固件文件所在的目录(DBG 目录),确保后续命令能找到目标文件ap_application.elf
  2. $env:Path:将 ARM 工具链的bin目录添加到系统环境变量Path中,让系统能找到arm-none-eabi-*系列工具。
  3. cmd /c "where arm-none-eabi-objdump.exe":验证工具是否能被系统找到(排查环境变量配置问题)。
  4. 后续的arm-none-eabi-*命令:对ap_application.elf(嵌入式固件的可执行文件)进行反汇编、符号分析、地址溯源。

核心命令详解

1. arm-none-eabi-objdump.exe(最核心的反汇编工具)

objdump是 ARM 工具链中用于分析目标文件(如.elf、.o)的工具,核心作用是将二进制的机器码转换成人类可读的汇编代码还能解析文件的段信息、符号表等

你用到的参数含义
-d
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 9:28:27

移远SDK ql_app_pre_init.c文件解析

代码 /** @fileql_app_pre_init.c@briefTODO*//*================================================================Copyright (c) 2023 Quectel Wireless Solution, Co., Ltd. All Rights Reserved.Quectel Wireless Solution Proprietary and Confidential. =============…

作者头像 李华
网站建设 2026/4/3 4:53:46

springboot疫情打卡健康评测系统(11676)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告)远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/4/8 20:30:29

深度学习抠图新体验|使用CV-UNet镜像实现精准Alpha通道提取

深度学习抠图新体验|使用CV-UNet镜像实现精准Alpha通道提取 随着AI图像处理技术的快速发展,自动抠图已从专业设计工具中的复杂操作,演变为普通人也能轻松上手的智能化流程。传统手动抠图耗时耗力,尤其在面对毛发、透明边缘等复杂…

作者头像 李华
网站建设 2026/4/11 19:45:22

Java面试必问:单例模式的线程安全问题

文章目录Java面试必问:单例模式的线程安全问题 ?一、单例模式的基础实现1. 懒汉式(Lazy Initialization)2. 饿汉式(Eager Initialization)3. 双重检查锁(Double-Checked Locking)二、单例模式的…

作者头像 李华
网站建设 2026/4/11 18:51:36

提升ASR准确率的关键|深度解析speech_ngram_lm_zh-cn集成方案

提升ASR准确率的关键|深度解析speech_ngram_lm_zh-cn集成方案 1. 背景与挑战:中文语音识别的精度瓶颈 在当前智能语音交互系统中,自动语音识别(ASR)作为核心组件,其准确性直接决定了用户体验和业务转化效…

作者头像 李华
网站建设 2026/4/14 11:18:56

【人工智能学习-AI入试相关题目练习-第一次】

人工智能学习-AI入试相关题目练习-第一次1-前言2-AI入试相关题目练习3-具体自己做题4-练习(日语版本)解析确认基准(1)A*アルゴリズム(経路探索)题目本质【ア:a(E)】【イ&…

作者头像 李华