0

Labview アプリケーションによって呼び出される dll をデバッグしようとしています。ntdll.dll などの適切なシンボル ファイル (Microsoft からダウンロード) があります。もちろん、DLL 用の pdb ファイルもあります。私が持っていないのは、明らかに、labview のシンボル ファイルです。私の知る限り、ナショナルインスツルメンツはリリースしていません。

windbg.exe 内から dll を呼び出す簡単なテスト アプリを試しました。これはうまくいきます。もちろん、ミックスwindbgにlabviewを追加すると、すべてのlabviewのものに対してエラー:シンボルファイルが見つかりませんでした。正しいシンボル ファイル ディレクトリが設定されており、ソース フォルダーも設定されていると確信しています。私はwindbgの初心者ですが、それを使用することに夢中になっているすべてのシンボルファイルがない限り、それを収集し始めています. あれは正しいですか?もしそうなら、それは fprintf と限定的なデバッグに戻っていると思います。

Visual Studio は使用したくありません。これは半組み込みアプリケーション用であり、Visual Studio のすべてを保持するためのディスク領域/スペースがないためです。

4

3 に答える 3

2

Windbg を LabVIEW プロセスに接続してから、DLL コードにブレークポイントを設定する必要があります。このようにして、コードに到達したときにのみ中断します。これは Visual Studio からの動作方法であり、簡単な検索では、windbg でも動作することが示唆されているようです。

于 2009-10-30T18:32:40.847 に答える
2

DLL にブレークポイントなどを設定することだけを計画している場合は、必ずしもうんざりしているわけではありません。それはうまくいくはずです。DLL から LabVIEW イメージにスタック トレースを戻すとエラーが発生しますが、これは関心のないものであり、無視できることを願っています。

于 2009-10-30T18:33:51.233 に答える
1

DLL が読み込まれるとすぐに中断するように、windbg にブレークポイントを設定することもできます。これを行うには、windbg を Labview プロセスにアタッチし、次のコマンドを使用します: sxe ld foo(fooは dll の名前)。これにより、特に dll の dll ロード イベントが発生したときに、デバッガーが中断するように指示されます。詳細については、 http://msdn.microsoft.com/en-us/library/cc266379.aspxを参照してください。このブレークポイントに到達すると、コード内でブレークしてデバッグするシンボルを特定できます。

于 2009-11-03T03:58:03.760 に答える