問題タブ [java-bytecode-asm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ASM ライブラリを使用してバイナリ命令をステートメントまたは式にマップする方法は?
後で使用するために、Java バイトコードを中間データ構造に解析しようとしています。私はASMに出くわしました。パワフルで安定しています。ただし、バイナリ命令を通常の Java 式とステートメントに戻すのは困難です。誰かが私に方向性を指摘できますか?
取引データ構造は次のようになります。
基本的には、Java 言語の抽象化にすぎません。
ありがとうございました。
java - Java: バイトコードからの新しいインスタンス
bytes
配列から新しいクラス インスタンスを作成したいと思います。どうすればいいですか?それはまったく可能ですか?
java - Java ローカル変数 - インデックスを使用して変数名または型を取得する方法
asm 計測ライブラリを使用しています。visitVarInsn を使用して、ローカル変数のインデックスを取得します。そのインデックスを使用して、変数の名前や型などのより有用な情報を取得したいと考えています。方法はありますか?ありがとう。
java - ASMを使用したアレイアクセスへのアクセス
ASMAPIを使用してアレイへのアクセスをトレースできるかどうか知りたいのですが。
私の目標は、配列のどのインデックスにいつアクセスするかを決定することです(この部分は簡単です-を使用してSystem.NanoTime()
)。アクセスされているインデックスを特定する方法が見つかりませんでした。
私は成功せずに次のものを使用しようとしています- visitFieldInsn
(クラスの静的および非静的変数の場合)、visitVarInsn
(静的および非静的ローカル変数の場合)、およびvisitMultiANewArrayInsn
-実際には配列を認識しませんでした。
java - java.lang.VerifyError: (クラス: メイン、メソッド: メイン署名: ([Ljava/lang/String;)V) スタック サイズが大きすぎます
私はASMライブラリを調べてきました。まず、Hello World クラスを構築するプログラムを作成し、次にもう少し複雑なことを試して、PythonInterpreter (Jython ライブラリの一部) を作成し、python ファイルを実行するクラスを構築しようと考えました。結果は次のとおりです。残念ながら、結果のクラスを実行しようとすると、この質問に名前を付けた例外が発生します。
}
java - asm Instrumantation を使用した Java プログラムの実行時間の測定
asmのJavaバイトコード計測を使用して、特定のバイトコード(元のコードにメイン機能を持つクラスファイル)ランタイムを測定する方法があるかどうか疑問に思っていました.
測定値は可能な限り正確である必要があり、可能であればナノ秒単位である必要があります。
ありがとう
java - ASM: ステートフル変換
乗算用の LDC 命令を変換する MethodVisitor を作成したいと考えています。
バイトコードの例:
これは基本的に定数をプッシュしてから乗算します。
最初にそれが乗算用であることを確認する必要があるため、ステートフルな変換である必要があります。そうである場合は、ldc 命令に戻って定数を変更する必要があります。どうすればいいのかよくわかりませんし、定数を変更する方法もわかりません (別の値を渡そうとすると、古い値がまだ定数プールに残っていました)。
編集:
これは私が持っているものですが、定数プールの古い値は削除されず、バグがある可能性があります。
java - javaasmライブラリを使用して「インポート」をインストルメント化する
Javaインストルメンテーションにasmライブラリを使用していて、「インポート」命令をインストルメントしたいと思います。これにより、visitMethodInsnとINVOKEVIRTUALを使用して、パッケージから関数を呼び出すことができます。バイトコードがあるとリンケージステージが終了するので、問題が発生する可能性があることを認識しています。解決策/迂回はありますか?
javascript - javascriptで実装されたJavaバイトコードリーダーはありますか?
Java で書かれたバイトコードを読み取るライブラリがたくさんあることは知っています。Javascript で実装されているバイト コード ライブラリを知っている人はいますか?