use*_*631 16 linux debugging gdb
我想在使用gdb进行调试时设置源代码的路径.我选择使用.gdbinit文件.
基本上,它包含一个命令:
directory="/path/to/src".
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够将该命令指定为:
directory="$SOURCESROOT/src"
Run Code Online (Sandbox Code Playgroud)
哪里SOURCESROOT是环境变量.并且,如果可能的话,也可以通过输入在gdb debuuging会话中做到这一点directory=$SOURCESROOT/folder.
基本上,我希望访问gdb(或.gdbinit内部)环境变量.
但不是debugee的环境(设置env等),而是gdb本身的环境(即我首先键入的bash提示符"gdb program").
虽然shell $SOURCESROOT在gdb会话中键入内容会显示环境变量的内容,但这是无用的,因为我无法输入:directory=shell $SOURCESROOT.
PS:任何人都找到了一个理想的设置Linux(Debian)下载带有"apt-get source"的源代码,用某种"apt-get update"utopic命令更新那些并安装它们以便gdb自动找到这些来源?
use*_*631 18
没关系,我发现如何使用Python脚本来做到这一点.
我的.gdbinit文件现在是:
python
import os
gdb.execute('directory' + os.environ['SOURCES'] + '/package_name/src')
end
show directories
Run Code Online (Sandbox Code Playgroud)
(晚了6年!)
不要.gdbinit用于此目的。它不会扩展环境变量。相反,使用此命令行启动 gdb:
gdb --init-eval-command="set dir $SOURCESROOT/src"
(gdb) show dir
/path/to/src
Run Code Online (Sandbox Code Playgroud)
仅供参考,此技术可用于设置其他关键变量,例如
gdb --eval-command="set sysroot $SYSROOTDIR"
Run Code Online (Sandbox Code Playgroud)
哪个集sysroot和solib-absolute-prefix在gdb
| 归档时间: |
|
| 查看次数: |
5502 次 |
| 最近记录: |