【问题标题】:How do you set the current directory of a debugged process?如何设置被调试进程的当前目录?
【发布时间】:2008-11-19 21:01:08
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: linux debugging totalview


    【解决方案1】:

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

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

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

    (gdb) cd new/working/directory
    

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

    【讨论】:

    • 哇,这很容易。更改我从工作中启动 TotalView 的目录。它还在“工具”菜单中有一个“评估”命令,用于运行 chdir 等即时命令。感谢您朝正确的方向轻推!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 2015-10-29
    相关资源
    最近更新 更多