2017-03-20 4 views
-2

Windowsでは、ファイルを開くことができないアプリケーションをデバッグするときに、アプリケーションが開こうとしていた正確なパスを示したProcess Monitorを使用しました。 Linux(Ubuntu)に似たツールや理想的なコマンドがありますか? (つまり、ファイルを開くために失敗した呼び出しを一覧表示できます)。Linuxで同等のプロセスモニタ

+1

https://superuser.com/questions/97844/how-can-i-determine-what-process-has-a-file-open-in-linux –

答えて

2

lsofを使用して、開いているファイルを確認したり、straceを使用して、openシステムコールをトレースして、オープンが機能しないようにすることができます。例えば

strace -e open cat doesnotexist.txt 

openが返さ-1とerrnoは、ファイルが存在しないという意味、ENOENTに設定されたこと、(やや冗長)あなたに伝えるために起こっています。

+0

絶対パスを教えてくれないようですopen( "ddf.cat"、O_RDONLY)= -1)とオープンしない( "/ home/whatever/ddf.cat") – SFD

+0

これは、引き数は(strace - システムコールトレース)で呼び出されました。パスが相対パスの場合、パスはstrace出力の相対パスになります。しかし、あなたが探しているエラーの原因になっている可能性のあるプログラムの作業ディレクトリを知っている必要があります。 – midor