查找二进制文件中的符号大小

时间:2020-05-20 21:48:58

标签: gdb elf disassembly debug-symbols objdump

我在程序的调试信息文件上使用objdump -t查找每个函数的地址范围。有一些函数的边界无法使用此方法确定。因为objdump报告了0的大小。这些符号如下所示:

deregister_tm_clones 0000000000197ce0
register_tm_clones 0000000000197d20
__do_global_dtors_aux 0000000000197d70
frame_dummy 0000000000197db0
_fini 00000000004e9474
_init 00000000001889e8

如何确定尺寸?我只能想象在起始地址上使用GDB disas命令并找到该函数反汇编的结尾。这可能并非在所有情况下都有效。什么是标准方法?


更新:

我正在实现Pintool以便在运行时生成调用栈。我只需要某些二进制文件中的符号。换句话说,我需要将函数的子集(例如GTK库中的函数)包含在调用堆栈中。因此,在运行时,我将需要这些库的范围。

另一方面,我需要符号的范围才能找到其输出跳转。这是取消尾调用的标志,需要堆栈更新

0 个答案:

没有答案