Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改elf调试信息中列出的源文件_Elf_Dwarf - Fatal编程技术网

更改elf调试信息中列出的源文件

更改elf调试信息中列出的源文件,elf,dwarf,Elf,Dwarf,基本上,我希望能够在elf二进制文件的debug dwarf部分中更改源文件的路径 基本上,我希望能够在elf二进制文件的debug dwarf部分中更改源文件的路径 什么阻止了你 路径存储在二进制文件的.debug_str部分,作为以NUL结尾的字符串。您可以从例如readelf-S中找到部分偏移量,并使用emacs编辑字符串。或者编写一个程序来实现这一点。为了防止您的答案与gdb(或其他调试器)相关,通常有一种方法可以更改源路径——在gdb中,您可以通过看到设置替换路径debugedit是R

基本上,我希望能够在elf二进制文件的debug dwarf部分中更改源文件的路径

基本上,我希望能够在elf二进制文件的debug dwarf部分中更改源文件的路径

什么阻止了你


路径存储在二进制文件的
.debug_str
部分,作为以
NUL
结尾的字符串。您可以从例如
readelf-S
中找到部分偏移量,并使用
emacs
编辑字符串。或者编写一个程序来实现这一点。

为了防止您的答案与gdb(或其他调试器)相关,通常有一种方法可以更改源路径——在gdb中,您可以通过看到
设置替换路径
debugedit是RPM包中包含的一个程序,应该会很有帮助。

如果这么简单的话。dwarf部分交叉引用,即debug_信息在debug_线中有偏移量。因此,如果更改debug_行,则必须修改其他部分以反映更改。值得注意的是,
debugedit
拒绝由于重新写入而创建更长的路径