gdb下指定调试文件位置

调试信息.
编译文件名:
gcc -c filename.这里的filename就会被存为文件名.
可以用readelf -Wwi | grep DW_AT_name查看.

编译位置:
gcc执行时的工作路径.
注意是每一个文件都有自己对应的编译绝对路径.

说明:
代码位置发生变化
可执行程序执行所在主机发生了变化.

要素:
编译文件名:资源搜索目录.

资源搜索目录:
用于搜索编译文件名的目录.
默认值,$cdir:$cwd,这两个都是实时解析,并不是固定值.

文件路径生成:
1.编译文件名是绝对路径.
2.资源搜索目录*(filename + cwd/filename + file base name).

解决地址变化问题:
set substitute-path from to
将上面生成的路径进行替换.
从头部匹配,将匹配from的部分用to替换.
from=/home/nice/home/niceshot不匹配,只匹配/home/nice/.

搜索路径操作
directory dirname ... |dir dirname ...
头插法.可加入$cdir,$cwd这种就是移动位置.
多个用空格或:分隔.
dir '/home/user1 /home/user2:/home/user3'

directory
重置为$cdir:$cwd

set directories path-list
替换,始终包含$cdir:$cwd

show directories
查看

set substitute-path from to
添加替换规则,尾插法.之前就有之前的删除后尾插.

unset substitute-path [path]
删除一个或所有.
删除所有后不包含$cdir,$cwd

show substitute-path [path]
查看替换规则.

おすすめ

転載: blog.csdn.net/rubikchen/article/details/115753388