6

起動元のディレクトリに敏感なアプリケーションがあります。相対パスを使用していくつかのファイルをロードします。

デバッガーを使用してプログラムを開始する場合、初期の現在のディレクトリを制御するにはどうすればよいですか?

デバッグされたプログラムに特別なコードを追加して呼び出しを行うことは避けたいと思いますchdir。私の本能は、とにかく本質的に外部設定であるため、デバッガーがそれを外部的に指定する方法を提供する必要があるということです。

私が使用しているデバッガーは TotalView ですが、テレビで同等の設定を見つけるのに役立つ可能性があるため、他の Linux デバッガーの回答も受け付けています。プログラムを呼び出すときに環境変数を指定できるので、ひばりで を設定してみましPWDたが、うまくいきませんでした。

4

1 に答える 1

7

GDB では、最初の作業ディレクトリは、GDB をインスタンス化するディレクトリです。したがって、作業ディレクトリにしたい場所から GDB を実行するだけです。または、プログラムの実行中に、次のようにして現在の作業ディレクトリを変更できます。

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

GDB には、GDB プロンプトからプロセスの作業ディレクトリを変更するための組み込みコマンドもありました。

(gdb) cd new/working/directory

私は TotalView を使用したことはありませんが、デバッガー内から (副作用を伴う) コードを実行するための同様の機能が必要です。

于 2008-11-19T21:13:56.613 に答える