5

メソッド呼び出しをトレースする jvmti エージェントを作成しました。C と jvmti および jni 関数を使用してコーディングします。私たちのOSはFedora 15で、エージェントは.soファイルにコンパイルされています。重要な Java プログラムでテストすると、クラッシュして次のエラー メッセージが表示されます。

A fatal error has been detected by the Java Runtime Environment:
  SIGSEGV (0xb) at pc=0x4e8e4e28, pid=24294, tid=3065949040.
  JRE version: 6.0_32-b05.
  Java VM: Java HotSpot (TM) Server VM (20.7-b02 mixed mode linux-x86).
  **Problematic frame:
    C [libc.so.6+0x7ae68] strcpy+0x18.**
4

1 に答える 1

1

IGSEGVは Signal Segmentation Violation の略です。POSIX 準拠のプラットフォームでは、SIGSEGV はプロセスが無効なメモリ参照またはセグメンテーション違反を行ったときにプロセスに送信されるシグナルです。

JVMTI エージェントのポインターを確認する必要があります。おそらく、いくつかの汚れたポインター操作を行います。

于 2012-10-01T21:48:31.073 に答える