前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gdb分析core文件找不到源码

gdb分析core文件找不到源码

作者头像
mingjie
发布2022-05-12 11:04:12
1.7K0
发布2022-05-12 11:04:12
举报
文章被收录于专栏:Postgresql源码分析

GDB源代码查找路径

在gdb程序的时候,有时候会发现源代码文件找不到

这个时候有两种选择:

1 显示绝对路径并找不到文件

如果gdb这个时候告诉你找不到这个带调试信息库的源文件路径,此时给出的路径地址是绝对路径,比如

/home/xxx/dev/aaa/bbb/ccc.c: 没有那个文件或目录

这种提示的,你就应该用gdb提供的

set substitute-path

这个其实很好理解,就是替换规则,你如果想查看当前的替换规则,你可以

show substitute-path

比如此时我们需要ccc.c这个文件,但由于某种原因,目前我们不能在/home/xxx/dev/aaa/bbb/ccc.c中找到, 但我们确可以在/data/bbb/ccc.c中找到,我们就

set substitute-path /home/xxx/dev/aaa/bbb/ /data/bbb/

此时我们再show substitute-path可以看到此时的转换规则已经被我们加进去了

2 显示相对路径并找不到文件

./a.cpp 没有那个文件或目录 那么此时你可以用dir dirName来指定,也就是说如果我们此时的a.cpp不在当前目录下,而是在当前目录下的bak文件夹下,我们只要

dir bak 这个时候我们的gdb就会把你加进去的dir整个替换到相对路径的前面,自己做拼接,也就是说,现在的./a.cpp变成了./bak/a.cpp。

注意两者的差别,对于绝对路径来说,你需要给出替换规则给他做字符串替换,对于相对路径来说,你需要给他目录来让他做拼接,也有点prefix的意思,这里的prefix由你给出,但相对路径整体结构由gdb给出,然后完成拼接操作。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GDB源代码查找路径
    • 1 显示绝对路径并找不到文件
      • 2 显示相对路径并找不到文件
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档