gcc 是否具有来自二进制文件的源文件列表(.c / .c ++ /。h)的功能(如果二进制文件具有调试信息)? ?
我知道同样可以通过 objdump 和 GDB 来实现。 但是“objdump”和“GDB”仅列出“.c”文件列表。
Exapmle: 我有两个文件(test.c和test.h),我用“-g”选项编译了测试代码并使用了“objdump”,如下所示:
bdk4user@llvm:~/home$ objdump --dwarf=decodedline a.out
a.out: file format elf64-x86-64
Decoded dump of debug contents of section .debug_line:
CU: test.c:
File name Line number Starting address
test.c 4 0x40057d
test.c 6 0x400585
test.c 7 0x40058f
test.c 8 0x4005a1
...
但它没有列出也使用的“.h”文件。
所以我的问题是, GCC 是否有功能,它可以提供正在二进制文件中使用的所有文件的列表。??
或任何其他实用程序达到相同的效果.. ??
提前致谢。
答案 0 :(得分:1)
“但它没有列出也使用的”.h“文件。”
由于头文件是使用C / C ++预处理器处理的,所以即使在生成.o
文件之前,这些工具都不能有它们的概念。