gpt4 book ai didi

c - 为什么 GDB 启动一个新的 shell 以及如何禁用此行为?

转载 作者:太空狗 更新时间:2023-10-29 17:08:27 25 4
gpt4 key购买 nike

我正在解决一个问题,即从 GDB 启动应用程序会导致符号查找错误,但从 shell 启动它是可行的。

事实证明,无论何时从 GDB 中启动程序,它都会启动一个新的 shell,从而覆盖我在启动 GDB 之前设置的所有环境变量(如 LD_LIBRARY_PATH)。

这不是我真正想要的行为。有人可以解释这背后的基本原理,或者告诉我如何关闭它吗?

最佳答案

我猜你无条件地在你的~/.cshrc 或类似的地方设置了LD_LIBRARY_PATH。因此,如果您在 shell 提示符下执行此操作:

export LD_LIBRARY_PATH=foo  # or for csh:
setenv LD_LIBRARY_PATH foo
$SHELL -c 'echo $LD_LIBRARY_PATH'

结果不是foo。不要那样做

通常这种情况发生在 CSH 用户身上,他们忽略了保护他们的 ~/.cshrc 免受非交互式 shell 的侵害。这也可能发生在设置了 BASH_ENV 的 BASH 用户身上。

关于c - 为什么 GDB 启动一个新的 shell 以及如何禁用此行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com