如何设置调试进程的当前目录?

Rob*_*edy 6 linux debugging totalview

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

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

我宁愿避免在调试程序中添加特殊代码来调用它chdir; 我的直觉是调试器应该提供一些在外部指定的方法,因为无论如何它本身就是一个外部设置.

我正在使用的调试器是TotalView,但我对其他Linux调试器的答案持开放态度,因为它可以帮助我在电视中找到类似的设置.我可以在调用程序时指定环境变量,所以在云雀上,我尝试过设置PWD,但没有运气.

Ada*_*eld 7

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

(gdb) print chdir("new/working/directory")
Run Code Online (Sandbox Code Playgroud)

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

(gdb) cd new/working/directory
Run Code Online (Sandbox Code Playgroud)

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