java-bytecode-asm

    2熱度

    3回答

    當爲其不同的方法檢測類時爲了使方法在文本文件中執行寫入操作。我首先將該字符串存儲在明確定義的局部變量3160中。如何選擇這些變量以防止與已有變量衝突。 就像這段代碼每次進入任何方法時,代碼都會將類名寫入文本文件。爲了做到這一點,必須使用變量3160將字符串s加載到堆棧上(值保持較大,以便已定義的變量名稱不與變量s衝突(3160)。我的問題是如何在方法中定義局部變量與ASM庫儀器儀表中,這個問題似乎

    0熱度

    1回答

    我正在開發一個庫,我需要在運行時爲我的對象的一些方法添加額外的代碼。這裏有兩點。首先,我想添加額外的代碼的程序,之前由其他人編寫,我不想編輯它。第二,在調用方法之前,我的工作非常類似於添加方面。 在互聯網上搜索和閱讀後,我發現了很多框架,比如aspectj,ASPECTWERKZ等可以完成這項工作的框架,但是例如aspectj的問題(在spring上下文中使用時)是因爲它沒有爲您提供任何API以在

    5熱度

    1回答

    我想使用ASM靜態最終字段添加到.class文件,源文件是 public class Example { public Example(int code) { this.code = code; } public int getCode() { return code; } private final int code

    0熱度

    1回答

    這是一些代碼。 static synchronized void q(ua paramua, int paramInt) { try { if (d) { if (paramInt > -16711936); return; } if (q * 514194583 > 0) { if (paramInt > -16711936); abf localabf = new a

    0熱度

    1回答

    使用ASM 4.我從另一種語言即時生成字節碼。它產生了以下內容,但我不清楚發生了什麼。我的猜測是try/catch塊會干擾堆棧。前兩行是加載一個Lambda2,然後需要它成爲堆棧最深處的最後一項,但我不明白是什麼讓它在一路上消失。 看起來,在指令13堆棧消失。這是它進入try/catch塊的地方。當它進入try/catch塊時,堆棧會被拋出嗎?如果是這樣,那將解釋問題。 java.lang.Run

    2熱度

    1回答

    嗯,我正在閱讀ASM4字節碼庫中的PDF教程/文檔/書籍(如果您願意)。我正在嘗試這些示例,並在學習過程中學習,通過閱讀,實際輸入代碼,執行,然後從輸出中學習。我碰到這個部分: public class ClassPrinter extends ClassVisitor { public ClassPrinter() { super(ASM4); } 這裏是鏈

    4熱度

    2回答

    我正在使用ASM 4在運行中生成一些類。一切都很順利,直到我開始生成代碼來執行異常處理。生成的字節碼位於底部。下面是我得到的錯誤: java.lang.VerifyError: Instruction type does not match stack map in method some.eval.ToEvaluate$0.apply()Ljava/lang/Object; at offset

    3熱度

    6回答

    我開發與ASM一個Java檢測引擎並沒有在計算堆棧的頂部有一定的值的情況,我想之前插入一個裁判(這是一個getstatic結果)現有的的值爲。即考慮到堆棧只有一個值:value ->,然後在getstatic我希望堆棧變成這樣:ref, value ->。 要執行此行爲,我必須插入以下字節碼:getsatic和swap。隨着ASM我會做這樣的事情(考慮類型MethodVisitor的mv): mv

    0熱度

    1回答

    因此,這裏是字節碼的片段,我正在嘗試使用ASM的類驗證,驗證: public <init>(Ljava/io/InputStream;)V ALOAD 0 ALOAD 1 SIPUSH 2048 NEW org/apache/xerces/impl/msg/XMLMessageFormatter DUP INVOKESPECIAL org

    0熱度

    2回答

    有沒有辦法找出導入類的內容? 在this問題:喬恩斯基特說,你不能做到這一點使用反射,但 如果你想找到編譯後的代碼中使用的所有類型, 這是一個稍微不同的問題。您可能希望將BCEL看作是分析字節碼的一種方式 。 這是我想知道怎麼做。