您可以首先使用调试信息 (gcc -g) 编译您的项目,并使用objdump
它来获取包含哪些源文件。
objdump -W <some_compiled_binary>
Dwarf 格式应包含您要查找的信息。
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
< c> DW_AT_producer : (indirect string, offset: 0x5f): GNU C 4.4.3
<10> DW_AT_language : 1 (ANSI C)
<11> DW_AT_name : (indirect string, offset: 0x28): test_3.c
<15> DW_AT_comp_dir : (indirect string, offset: 0x36): /home/auselen/trials
<19> DW_AT_low_pc : 0x82f0
<1d> DW_AT_high_pc : 0x8408
<21> DW_AT_stmt_list : 0x0
在这个例子中,我从 test_3 编译了目标文件,它位于 .../trials 目录中。然后当然你需要围绕这个编写一些脚本来收集相关的源文件名。