一些linux指令在调试中使用

ELF(Executable and Linkable Format)文件是一种用于可执行文件、目标文件和共享库的标准文件格式。它是在 UNIX 和类 UNIX 系统中广泛使用的文件格式之一。ELF 文件由以下几种类型:

  1. 可执行文件(Executable Files):包含可以直接在操作系统上运行的可执行程序的文件。当用户在终端中输入可执行文件的名称时,操作系统会加载该文件并执行其中的程序代码。

  2. 目标文件(Object Files):包含编译器生成的机器代码、符号表、重定位信息等。目标文件通常用于链接器将多个目标文件组合成一个可执行文件或共享库。

  3. 共享库文件(Shared Libraries):也称为动态链接库,包含可被多个程序共享的代码和数据。共享库文件可以在程序运行时动态加载到内存中,并被多个程序共享使用,这有助于减少程序的内存占用和提高代码重用性。

1.grep:搜索某个接口在哪个so使用

 grep -r ss_mpi_sys_init ./
Binary file ./libbcamera_common.so matches
Binary file ./third_party/AscendCL/lib/libss_mpi.so matches
./third_party/AscendCL/include/ss_mpi_sys.h:td_s32 ss_mpi_sys_init(td_void);
./third_party/AscendCL/include/ss_mpi_sys.h:td_s32 ss_mpi_sys_init_pts_base(td_u64 pts_base);

2. file:可以用于确定文件的类型

file ./third_party/AscendCL/lib/libss_mpi.so
./third_party/AscendCL/lib/libss_mpi.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, stripped

3. ldd:用于打印出一个可执行程序或共享库所需要的共享库列表。

你可以在终端中运行以下命令来查看共享库文件所依赖的其他库文件。

ldd /path/to/libexample.so

这将列出共享库文件依赖的所有动态链接库,以及它们的路径

 2. objdum、readelf、nm:查看共享库中的函数

nmobjdumpreadelf 这三个命令都可以用来查看共享库中的函数及其相关信息,包括函数的名称、地址、大小等。它们提供了不同的选项和输出格式,但基本功能是相似的。

  1. nmnm 命令主要用于显示二进制文件的符号表信息,包括函数、变量和其他符号的名称和地址等。在查看共享库中的函数时,你可以使用 -D 选项来只显示动态符号,即共享库中导出的符号。这些函数是共享库中可以被其他程序或共享库所使用的。

  2. objdumpobjdump 命令是一个通用的二进制文件分析工具,可以用于显示 ELF 文件的各种信息,包括共享库中的函数。你可以使用 -T 选项来显示共享库中的导出函数及其地址。

  3. readelfreadelf 命令也是用于查看 ELF 文件的信息的工具,它提供了更详细和全面的 ELF 文件结构的解析。你可以使用 -s 选项来显示共享库中的符号表,包括函数、变量和其他符号。

4. 查看系统信息        uname -a

5. 查看cpu信息,一般来说可以使用        cat  /proc/cpuinfo

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值