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