我有一个对它调用的目录敏感的应用程序 - 它使用相对路径加载一些文件.
当我通过调试器启动程序时,如何控制初始当前目录?
我宁愿避免在调试程序中添加特殊代码来调用它chdir
; 我的直觉是调试器应该提供一些在外部指定的方法,因为无论如何它本身就是一个外部设置.
我正在使用的调试器是TotalView,但我对其他Linux调试器的答案持开放态度,因为它可以帮助我在电视中找到类似的设置.我可以在调用程序时指定环境变量,所以在云雀上,我尝试过设置PWD
,但没有运气.
使用GDB,初始工作目录是您实例化GDB的目录.因此,只需从您想要的工作目录运行GDB即可.或者,在程序运行时,您可以通过执行以下操作来更改当前工作目录:
(gdb) print chdir("new/working/directory")
GDB还有一个内置命令,用于从GDB提示符更改进程的工作目录:
(gdb) cd new/working/directory
我从来没有使用过TotalView,但它应该具有类似的功能,可以在调试器中执行代码(带副作用).