6

我有一个对调用它的目录很敏感的应用程序——它使用相对路径加载一些文件。

当我通过调试器启动程序时,如何控制初始当前目录是什么?

我宁愿避免向调试程序添加特殊代码以使其调用chdir;我的直觉是调试器应该提供某种方式来从外部指定它,因为它本质上是一个外部设置。

我使用的调试器是 TotalView,但我愿意接受其他 Linux 调试器的答案,因为它可以帮助我在 TV 中找到类似的设置。我可以在调用程序时指定环境变量,所以在云雀上,我尝试了设置PWD,但没有运气。

4

1 回答 1

7

对于 GDB,初始工作目录是您从中实例化 GDB 的目录。因此,只需从您想要的工作目录中运行 GDB。或者,在程序运行时,您只需执行以下操作即可更改当前工作目录:

(gdb) print chdir("new/working/directory")

GDB 还有一个内置命令,用于从 GDB 提示符更改进程的工作目录:

(gdb) cd new/working/directory

我从未使用过 TotalView,但它应该具有类似的功能,可以在调试器中执行代码(有副作用)。

于 2008-11-19T21:13:56.613 回答