我想在其环境中仅使用单个变量 MyVar
来运行 gdb
。
但是,变量的内容相当复杂,包含不可打印的 ASCII,因此最好使用例如MyVar=$(python -c 'print("\xff...")')
。
我有两个选择:
在运行
gdb
之前在bash
中设置MyVar
。然后在gdb
内,使用unsetenvironmentNAME
单独删除所有其他环境变量(非常乏味!)。使用
unsetenvironment
清除所有环境变量。然后在gdb
中,使用 shell 命令设置MyVar
(如上所述)(如何?)
有什么想法吗?
最佳答案
从 shell 命令行启动 gdb 时,可以指定运行哪个程序,with which arguments (with --args
) ,甚至可以借助env
修改程序的环境!
我刚刚成功地做到了这样:
gdb --ex=run --args env LD_BIND_NOW=1 LD_DEBUG=libs \
apt-get install --yes $(cat pkgs-to-install-to-crash-apt)
--ex=run
是让gdb立即运行。
在你的情况下,你会做env -i
。
与建议的env -i VAR=... gdb程序
不同的是,只有您检查的程序在特殊环境下,而不是gdb。
关于linux - 如何使用 shell 命令在 GDB 中设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55593045/