Linux nm命令详解:查看库和目标文件的符号表
需积分: 1 85 浏览量
更新于2024-08-03
收藏 330KB PDF 举报
"ubuntu-nm命令基本使用.pdf"
nm命令是Linux操作系统中用于分析二进制文件的工具,它可以列出库文件、目标文件和可执行文件中的符号表。这个命令对于理解程序的结构、查找函数定义以及调试过程非常有用。下面我们将深入探讨nm命令的常用参数及其作用。
1. `-A`, `-o`, `--print-file-name`:这些参数会显示每个符号所属的文件名称,这对于追踪符号来源特别有帮助。
2. `-a`, `--debug-syms`:当使用此参数时,nm会显示调试符号,这对于调试和理解程序的内部工作至关重要,特别是对于C++程序,因为它们通常包含复杂的编译后信息。
3. `-B`:此选项用于兼容MIPS架构的nm,它等同于`--format=bsd`。
4. `-C`, `--demangle`:这个参数会将编译后的低级符号名转换为人类可读的C++函数名,使得符号解析更直观。
5. `-D`, `--dynamic`:仅显示动态符号,这对于查看共享库的接口非常有用。
6. `-f`, `--format=formatt`:允许用户选择输出格式,包括`bsd`, `sysv`和`posix`,默认为`bsd`。
7. `-g`, `--extern-only`:只显示外部符号,也就是不在当前文件中定义,而是从其他文件导入的符号。
8. `-n`, `-v`, `--numeric-sort`:按符号地址排序,而不是按符号名称排序,这有助于比较不同符号的位置。
9. `-p`, `--no-sort`:不进行任何排序,按文件中原始顺序显示符号。
10. `-P`, `--portability`:使用POSIX.2标准输出格式,这使得输出在不同的系统间保持一致。
11. `-s`, `--print-armap`:在列出库文件成员符号时,包含索引信息,显示哪些模块包含了哪些名字的映射。
12. `-r`, `--reverse-sort`:反向排序,即从高到低或从Z到A显示符号。
13. `--size-sort`:根据符号的大小进行排序,这对于查找占用内存最多的符号很有用。
14. `--tradix`或`--radix=radix`:指定数值显示的基数,可以是十进制(d)、八进制(o)或十六进制(x)。
15. `--target=bfdname`:指定目标代码格式,如果不使用,默认使用系统配置的格式。
16. `-u`, `--undefined-only`:仅显示未定义的符号,这对于查找依赖项和解决链接错误很有帮助。
17. `-l`, `--line-numbers`:尝试从调试信息中获取文件名和行号,这对于定位代码中的具体位置特别有用。
18. `-V`, `--version`:显示nm命令的版本信息。
通过这些参数的组合使用,开发者可以根据需要获取关于二进制文件的各种信息,包括函数、变量、全局常量和其他符号的定义和位置。在Ubuntu系统中,熟练掌握nm命令的使用能够极大提升开发和调试效率。
2023-12-14 上传
2021-09-29 上传
2024-10-23 上传
160 浏览量
2022-09-20 上传
极智视界
- 粉丝: 3w+
- 资源: 1768
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载