在我的计算机上,当在GDB中启动外壳程序时,它将给出一个非常标准的外壳程序(看起来像“ bash-4.4 $”),而忽略了我的大多数环境变量。对我来说,真正的问题是由于这个原因我无法调整LD_LIBRARY_PATH变量。
关于SO的更多帖子建议检查.bashrc和.profile,我这样做了。我什至创建了一个新用户,问题仍然存在。因此,GDB通过更改我的PS1并取消设置LD_LIBRARY_PATH来加载一些脚本。但是,我不知道哪个过程。出于某种原因,Root不会出现此问题。
这有效:
delruej@delxps:~$ export LD_LIBRARY_PATH=Hello
delruej@delxps:~$ bash
delruej@delxps:~$ echo $LD_LIBRARY_PATH
Hello
但这不是:
delruej@delxps:~$ export LD_LIBRARY_PATH=Hello
delruej@delxps:~$ gdb
(gdb) shell
bash-4.4$ echo $LD_LIBRARY_PATH
应该是每个用户都可以加载的脚本,而不是root用户。
答案 0 :(得分:0)
因此,GDB通过更改我的PS1并取消设置LD_LIBRARY_PATH来加载一些脚本
不。 GDB只会加载您的$SHELL
,而您的$SHELL
出于某些原因会取消设置这些环境变量。
您应该查看$SHELL
以及可能的$ENV
的值。
请注意:
LD_LIBRARY_PATH
通常是一个错误;您应该努力构建不需要它们的程序。(gdb) set env FOO bar
来设置GDB内部的任何环境变量(您不必从父shell继承它们)。答案 1 :(得分:-1)
我清除了GDB,删除了/ usr / share / gdb /,重新安装并解决了问题。