問題タブ [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.

0 投票する
2 に答える
184 参照

java - ASM ライブラリを使用してバイナリ命令をステートメントまたは式にマップする方法は?

後で使用するために、Java バイトコードを中間データ構造に解析しようとしています。私はASMに出くわしました。パワフルで安定しています。ただし、バイナリ命令を通常の Java 式とステートメントに戻すのは困難です。誰かが私に方向性を指摘できますか?

取引データ構造は次のようになります。

基本的には、Java 言語の抽象化にすぎません。

ありがとうございました。

0 投票する
3 に答える
1206 参照

java - Java: バイトコードからの新しいインスタンス

bytes配列から新しいクラス インスタンスを作成したいと思います。どうすればいいですか?それはまったく可能ですか?

0 投票する
2 に答える
1743 参照

java - Java ローカル変数 - インデックスを使用して変数名または型を取得する方法

asm 計測ライブラリを使用しています。visitVarInsn を使用して、ローカル変数のインデックスを取得します。そのインデックスを使用して、変数の名前や型などのより有用な情報を取得したいと考えています。方法はありますか?ありがとう。

0 投票する
2 に答える
530 参照

java - ASMを使用したアレイアクセスへのアクセス

ASMAPIを使用してアレイへのアクセスをトレースできるかどうか知りたいのですが。

私の目標は、配列のどのインデックスにいつアクセスするかを決定することです(この部分は簡単です-を使用してSystem.NanoTime())。アクセスされているインデックスを特定する方法が見つかりませんでした。

私は成功せずに次のものを使用しようとしています- visitFieldInsn(クラスの静的および非静的変数の場合)、visitVarInsn(静的および非静的ローカル変数の場合)、およびvisitMultiANewArrayInsn-実際には配列を認識しませんでした。

0 投票する
1 に答える
2170 参照

java - java.lang.VerifyError: (クラス: メイン、メソッド: メイン署名: ([Ljava/lang/String;)V) スタック サイズが大きすぎます

私はASMライブラリを調べてきました。まず、Hello World クラスを構築するプログラムを作成し、次にもう少し複雑なことを試して、PythonInterpreter (Jython ライブラリの一部) を作成し、python ファイルを実行するクラスを構築しようと考えました。結果は次のとおりです。残念ながら、結果のクラスを実行しようとすると、この質問に名前を付けた例外が発生します。

}

0 投票する
1 に答える
362 参照

java - asm Instrumantation を使用した Java プログラムの実行時間の測定

asmのJavaバイトコード計測を使用して、特定のバイトコード(元のコードにメイン機能を持つクラスファイル)ランタイムを測定する方法があるかどうか疑問に思っていました.

測定値は可能な限り正確である必要があり、可能であればナノ秒単位である必要があります。

ありがとう

0 投票する
2 に答える
865 参照

java - ASM: ステートフル変換

乗算用の LDC 命令を変換する MethodVisitor を作成したいと考えています。

バイトコードの例:

これは基本的に定数をプッシュしてから乗算します。

最初にそれが乗算用であることを確認する必要があるため、ステートフルな変換である必要があります。そうである場合は、ldc 命令に戻って定数を変更する必要があります。どうすればいいのかよくわかりませんし、定数を変更する方法もわかりません (別の値を渡そうとすると、古い値がまだ定数プールに残っていました)。

編集:

これは私が持っているものですが、定数プールの古い値は削除されず、バグがある可能性があります。

0 投票する
1 に答える
962 参照

java - javaasmライブラリを使用して「インポート」をインストルメント化する

Javaインストルメンテーションにasmライブラリを使用していて、「インポート」命令をインストルメントしたいと思います。これにより、visitMethodInsnとINVOKEVIRTUALを使用して、パッケージから関数を呼び出すことができます。バイトコードがあるとリンケージステージが終了するので、問題が発生する可能性があることを認識しています。解決策/迂回はありますか?

0 投票する
3 に答える
864 参照

javascript - javascriptで実装されたJavaバイトコードリーダーはありますか?

Java で書かれたバイトコードを読み取るライブラリがたくさんあることは知っています。Javascript で実装されているバイト コード ライブラリを知っている人はいますか?

0 投票する
2 に答える
901 参照

java - Java アノテーションをメソッドにさかのぼって追加しますか?

特定のメソッドに Java アノテーションを追加するために .class ファイルを変更する方法はありますか? 基本的に、jar ファイル内の各クラス ファイルのメソッドをトラバースし、特定のメソッドに注釈を付けたいと考えています。これは、jar ファイルの使用中は実行時ではないことに注意してください。むしろ、作業が完了したら、注釈を付けてクラス ファイルを変更したいと考えています。

私はソース コードにアクセスできるので、自動ソース コード修飾子があれば、それも同様に機能します...

JavassistASMなどのツールが必要になると思います。もしそうなら、私はどれを使うべきですか?