几个Linux调试指令简单随记

本文介绍了Linux下两个常用的调试工具:readelf和nm。readelf可以查看ELF文件的依赖信息,如库文件依赖;nm则用于查看库中的函数符号列表,帮助解决链接错误。通过这两个命令,开发者可以更好地理解和处理库的依赖问题,以及定位编译过程中的undefined reference错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. readelf

该指令可以查看当前 elf 文件的依赖。

比如这样:

readelf -d libtinyalsa.a

File: libtinyalsa.a(limits.o)

File: libtinyalsa.a(mixer.o)

File: libtinyalsa.a(pcm.o)

 表示这个 .a 依赖于是哪几个 .o 文件

再比如这样:

$ readelf -d libtinyalsa.so

Dynamic section at offset 0x6d24 contains 26 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libgcc_s.so.1]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000e (SONAME)                     Library soname: [libtinyalsa.so.1]
 0x0000000c (INIT)                       0x1540
 0x0000000d (FINI)                       0x6484
 0x00000019 (INIT_ARRAY)                 0xed18
 0x0000001b (INIT_ARRAYSZ)               4 (bytes)
 0x0000001a (FINI_ARRAY)                 0xed1c
 0x0000001c (FINI_ARRAYSZ)               4 (bytes)
 0x00000004 (HASH)                       0xd4
 0x00000005 (STRTAB)                     0xb70
 0x00000006 (SYMTAB)                     0x430
 0x0000000a (STRSZ)                      1735 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000003 (PLTGOT)                     0xee14
 0x00000002 (PLTRELSZ)                   392 (bytes)
 0x00000014 (PLTREL)                   &n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值