C语言 如何按地址顺序排序符号表(由“objdump -t”生成)?

eqqqjvef  于 2023-01-04  发布在  其他
关注(0)|答案(1)|浏览(199)

我想一眼就能看出哪些变量在内存中是相邻放置的,如果我用objdump -t生成一个符号表,我得到的符号表看起来是随机排序的。

SYMBOL TABLE:
00100584 l     F .text  00000000 deregister_tm_clones
001005a8 l     F .text  00000000 register_tm_clones
001005d4 l     F .text  00000000 __do_global_dtors_aux
0019c020 l       .bss   00000001 completed.10177
0019c00c l     O .fini_array    00000000 __do_global_dtors_aux_fini_array_entry
00100604 l     F .text  00000000 frame_dummy
0019c024 l       .bss   00000018 object.10182
0019c008 l     O .init_array    00000000 __frame_dummy_init_array_entry
00000000 l    df *ABS*  00000000 tcp_server_test.c
0019c03c l       .bss   00000004 xServerWorkTaskHandle
001006a4 l     F .text  00000098 prvServerWorkTask
0019c040 l       .bss   00000008 xMyTelnet
...

有没有办法让它排序的地址(第一列)在计数方式?
如果有一个开关可以添加到objdump -t中以获得所需的输出,那就太好了。我翻阅了文档,没有找到类似的东西,但也许我忽略了一些东西?
另一种方法是编写一个python脚本来调用它,但如果可能的话,我希望避免这种情况。
谢谢!

axkjgtzd

axkjgtzd1#

您可以使用通用工具“sort”对“objdump”的输出进行排序。
请阅读它的文档中的选项。没有任何选项,它只是在第一列排序。
对于还不了解命令行的用户...
您需要将“objdump”的输出作为“sort”的输入进行“管道传输”,如下所示:
第一个月

相关问题