我如何获得源代码路径&& ELF文件中的文件名(与-g一起使用)?

时间:2015-07-10 05:48:13

标签: linux elf

我想获得源代码路径&&源名称只是通过ELF文件, .debug_str 部分包含我需要的内容,但是如何将其过滤掉?

4 个答案:

答案 0 :(得分:2)

我建议使用此命令和工具,如sed或grep。

$ readelf --string-dump=.debug_str YOUR_PROGRAM

此节目路径和源文件名:

$ readelf --string-dump=.debug_str YOUR_PROGRAM | sed -n '/\/\|\.c/{s/.*\]  //p}'

答案 1 :(得分:2)

$ readelf --string-dump=.debug_str YOUR_PROGRAM

工作正常。

但是,请确保使用命令

不会剥离your_program
file YOUR_PROGRAM

答案 2 :(得分:1)

还有另一种方式:

readelf --syms YOUR-PROGGRAM |tee /tmp/log

vim /tmp/log
:vim "FILE" %

您将获得所有文件名,但没有路径。

答案 3 :(得分:0)

readelf持有密钥,但您不想无缘无故地转储字符串。使用-wi选项正确格式化信息 例如,创建一个shell脚本:

readelf -wi $1 | grep -B1 DW_AT_comp_dir | \
    awk '/DW_AT_name/{name = $NF; getline; print $NF"/"name}'

进一步总结了readelf -wi的输出。