在用GDB进行 debug的时候,可以用 directory 设置搜索目录,用 show direcories 显示设置的搜索目录:
- (gdb) show directories
- Source directories searched: $cdir:$cwd
- (gdb) directory /home
- Source directories searched: /home:$cdir:$cwd
- (gdb) show directories
- Source directories searched: /home:$cdir:$cwd
- (gdb)
(gdb) show directories
Source directories searched: $cdir:$cwd
(gdb) directory /home
Source directories searched: /home:$cdir:$cwd
(gdb) show directories
Source directories searched: /home:$cdir:$cwd
(gdb)
但是,有个局限性,就是这个搜索目录不是递归的,它只对设置的目录下的文件起作用,对于这个目录下的其它目录里的文件不起作用。所以这个功能不是很好用。
一种比较好的方法是借助 gdb的-d选项:
- -directory=directory
- -d directory
- Add directory to the path to search for source files.
-directory=directory
-d directory
Add directory to the path to search for source files.
先使用命令把需要搜索的目录设置好,传给gdb.
具体方法是:
- gdb `find srcdir -type d -printf '-d %p '` prog
gdb `find srcdir -type d -printf '-d %p '` prog
有的版本的 find不支持 -printf选项,此时,可以用下面的方法:
- gdb `find . -type d | xargs printf " -d %s"` prog
gdb `find . -type d | xargs printf " -d %s"` prog