3

ハードウェア ベンダーが提供する DLL を使用して USB ハードウェアと通信するソフトウェアを Java で作成しました。Java Native Accessライブラリを使用して、ラッパーをネイティブ コードに記述しました。ネイティブ コード関連の関数でのみ実行すると、JVM がクラッシュし、ソース コード (MSVCRT71.DLL) を持っていないネイティブ コードで発生するため、バグの原因を特定できないことがあります。

私はほとんどの場合 Linux 開発者なので、この状況には慣れていません。デバッガーを外部 (Visual C++ など) から JVM プロセスにアタッチし、意味のあるもの (つまり、アセンブリ命令ではない) を取得するにはどうすればよいですか?

4

1 に答える 1

2

MSVCRT71.DLLは、VisualStudio7.1に含まれているc-runtimeライブラリのdllです。

crtソースがあるVisualStudio7.1をインストールします。[デバッグ]->[プロセス]に移動し、実行しているJavaインスタンスを見つけて、[接続]をクリックします。

VS7を手に入れることができない場合は、これを試してください

[ http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx] [1]

そのバージョンのcrtのシンボルを取得するようにしてください

于 2009-02-09T20:26:23.153 に答える