我有一个对从其调用的目录敏感的应用程序-它使用相对路径加载某些文件。
通过调试器启动程序时,如何控制初始当前目录是什么?
我宁愿避免在调试后的程序中添加特殊代码,使其称为chdir
;我的直觉是,调试器应该提供某种方式在外部进行指定,因为它本质上还是一种外部设置。
我正在使用的调试器是TotalView,但是我愿意接受其他Linux调试器的答案,因为它可以帮助我在电视中找到类似的设置。我可以在调用程序时指定环境变量,因此,很遗憾,我尝试设置PWD
,但是没有运气。
最佳答案
对于GDB,初始工作目录是您实例化GDB的目录。因此,只要从您想要的工作目录开始运行GDB。另外,在程序运行时,只需执行以下操作即可更改当前工作目录:
(gdb) print chdir("new/working/directory")
GDB还具有一个内置命令,用于从GDB提示符更改进程的工作目录:
(gdb) cd new/working/directory
我从未使用过TotalView,但是它应该具有类似的功能,可以从调试器内部执行代码(带有副作用)。
关于linux - 如何设置调试进程的当前目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/303350/