Q
字節碼和ASM
0
A
回答
0
你想在運行時讀取類嗎?試試這個
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.util.ASMifierClassVisitor;
ClassReader cr = new ClassReader(b);
cr.accept(new ASMifierClassVisitor(new PrintWriter(System.out)), 0);
0
如果非要從包含INVOKESPECIAL指令ASM框架的AbstractInsnNode,將我的節點包括指令的方法規範?
AFAIK,是的。它應該是MethodInsnNode
的一個實例,並且desc
字段應該是一個方法描述符字符串。
如果insn有一個INVOKESPECIAL指令,我的ins會有一個像「invokespecial java/lang/StringBuffer /()V」的字符串?
實際上,有三個組件。方法描述符字符串,方法名稱和擁有(在本例中爲實際)方法的類的內部名稱。
相關問題
- 1. 插入字節碼用ASM
- 2. ASM:輸出java字節碼和操作碼
- 3. ASM字節碼方法參數值
- 4. 使用HttpURLConnection的ASM字節碼
- 5. ASM字節碼儀器儀表/出口
- 6. 變量定義和賦值檢測asm字節碼
- 7. 無法安裝asm框架和字節碼大綱插件
- 8. ASM字節碼操作 - istore和istore_ <n>
- 9. ASM mov字節數組
- 10. Java ASM如何讀取LOAD或STORE字節碼的值
- 11. 使用接口訪問字節代碼類的Java OW2 ASM
- 12. ASM 4.0 Tree API:InsnNodes中的字節碼映射?
- 13. 如何轉儲ASM生成的類的字節碼?
- 14. ASM字節碼操作:測量方法執行速度
- 15. 與ASM字節碼檢測功能不兼容的參數
- 16. 當字節碼使用asm完成時,java.lang.reflect.InvocationTargetException被拋出。
- 17. 如何使用ASM 4.0修改Java字節碼
- 18. ASM字節代碼以識別for/while循環
- 19. 在ASM字節碼庫中獲取泛型信息
- 20. x86_64 ASM - 指令的最大字節數?
- 21. 用asm動態生成字節
- 22. 字符串和ASM 86
- 23. ASM字節碼視圖顯示「//無法生成字節碼視圖,找不到.class文件」
- 24. 使用ASM的一個類的所有超類java java字節碼代碼
- 25. ASM字節碼庫中用於操作碼性質確定的實用方法?
- 26. 什麼是Java ASM節點?
- 27. Tcl字節碼和特效
- 28. 字節代碼:LOOKUPSWITCH和TABLESWITCH
- 29. 標準Lua字節碼和LuaJIT字節碼之間的區別
- 30. 我可以使用與ASM相同的「生成器」生成Java字節碼和源代碼嗎?
所以如果我將一個methodinsnnode變量轉換爲字符串,我將能夠使用像.contains(「lang」)這樣的方法在描述符中查找單詞「lang」? – user1912475
聽起來像一個壞主意。您應該可以將對象轉換爲'MethodInsnNode',然後通過聲明的字段訪問信息。它有點不清楚你實際上是在什麼信息之後,但它*看起來像*你想要聲明方法的類型的名稱而不是方法的簽名。 (不幸的是,你的問題有些方面沒有意義。) –
讓我試着解釋一下:我只是想在字符串中存儲描述符(其中是由invokespecial指令調用的超類的名稱),所以我的程序可以最終讀取這個字符串,並知道是否調用該方法來處理異常 – user1912475