bytecode-manipulation

    1

    1答えて

    私はデバッガ、計測器、およびJVMTIの分野では新しいです。 だから私はそれらについてほとんど質問がありません。 JDI(Javaデバッガインタフェース)、JWDP、javaagent、およびネイティブエージェント(JVMTI)の違いは何ですか? 、java instrumentation APIはどこにあるのですか? 対象のJavaアプリケーションで例外を傍受するためにJDIを使用しています。

    4

    1答えて

    メソッド全体を変更することなく、特定の行の既存のクラスにあるif文を更新したいと考えています。ここで は、ターゲットコードは(彼らは関係ありませんだから、クラス、メソッド、およびいくつかのコードの名前が変更された)である: :私はこのような何かに if(firstPar.check())を変更したい。このコードでは public class Target extends Something {

    0

    1答えて

    私はASMライブラリを使ってバイトコードを生成し、Unsafe.defineAnonymousをクラスとしてロードします。どちらもほとんどの場合に機能しますが、しばらくしてから失敗します。次に、出力されたバイトコードに何らかのデバッグ命令を追加して何かを出力し、出力が2週間混乱させました。 (GWTはGuardWithTestHandleの略です) 1、DYNGWT70とDYNGWT73の2つのク

    0

    1答えて

    私は最近、「バイトコード操作」という言葉に出会った(これを調べるために、Hibernateを使ったアプリケーションでログを見てバイトコードプロバイダを見たのは間違いない)。私はJava Reflection APIについても知っています。 これらの2つの概念は似ていますか?それらの違いは何ですか?どちらを使うの?

    1

    1答えて

    ねえねえファイル形式のバイトコードに関する質問があります。 手順は{label、1}と{line、1}とは何ですか? そして、私はビームファイルの反転について読むことができる良いウェブサイト/シートを持っていますか? はアーランのcompile module documentationからあなたに

    2

    1答えて

    基本的には、メソッドの最後に単純なSystem.out.println("hey"); を追加しようとしています。私はツリーAPIを使用しました。しかし私はこのエラーを取得しておくん: java.lang.VerifyError: Expecting a stackmap frame at branch target 38 は、これは私のコードです: public class MethodNode

    -1

    1答えて

    要約:ASMを使用して、各メソッド命令(MethodInsnNode)に対してバイトコードクラスを指定すると、それに使用されている参照を取得する必要があります。 Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return public vo

    0

    1答えて

    インライン複数メソッド呼び出しの後にバイトコードのシーケンスを生成します。インラインの初めに、インラインメソッドで例外が発生した場合には、まず既存の変数インデックスを新しいローカル変数番号にポップしました。この演算の結果、最終的なバイトコード内にいくつかのxLOADおよびxStoreシーケンスが生成されます。サンプルは次のとおりです。私はこれらのXLOAD/xStoreシーケンスを排除するためのい

    2

    1答えて

    2つのjarファイルがあります(例:Updater.jarとCode.jar)。 Updater.jarは、その主な方法で起動し、それはpremainメソッドで再び自分自身を起動します package Update; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; impo

    0

    1答えて

    ASM Tree APIには、メソッド内の命令のリストを含むInsnListがあります。 これを基本ブロックに分割したい:最後のもの以外の各命令がちょうど1つの後続を持ち、最初の命令以外の命令がジャンプの対象にならないような一連の命令。 これはどのようにして達成できますか?