GDB在Shell启动时加载无法找到的脚本

时间:2019-04-03 16:08:50

标签: c++ bash ubuntu gdb

在我的计算机上,当在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用户。

2 个答案:

答案 0 :(得分:0)

  

因此,GDB通过更改我的PS1并取消设置LD_LIBRARY_PATH来加载一些脚本

不。 GDB只会加载您的$SHELL,而您的$SHELL出于某些原因会取消设置这些环境变量。

您应该查看$SHELL以及可能的$ENV的值。

请注意:

  1. 使用LD_LIBRARY_PATH通常是一个错误;您应该努力构建不需要它们的程序。
  2. 您可以 使用(gdb) set env FOO bar来设置GDB内部的任何环境变量(您不必从父shell继承它们)。

答案 1 :(得分:-1)

我清除了GDB,删除了/ usr / share / gdb /,重新安装并解决了问题。