1
我想檢測,其中一個神祕的System.gc()從何而來, 所以我希望建立在對System.gc()的所有調用aspectj-maven-compiler插件:如何編織JRE系統。*?
的文檔描述瞭如何編織現有罐切入點和現有的dirs,但是 如何編織JDK本身?
非常感謝
我想檢測,其中一個神祕的System.gc()從何而來, 所以我希望建立在對System.gc()的所有調用aspectj-maven-compiler插件:如何編織JRE系統。*?
的文檔描述瞭如何編織現有罐切入點和現有的dirs,但是 如何編織JDK本身?
非常感謝
可以編織rt.jar
事先和你的JDK/JRE替換它。請注意,由於Javaagent無法訪問引導類加載器,加載時織入不起作用。
然而,快速搜索發現,有整個JDK(孫1.6.0_26),明確要求System.gc()
只有一個地方:
java.nio.Bits#reserveMemory
也許你可以簡單地附加一個調試器,把一個斷點gc()
方法?
這就是說你可以使用call()
建議,而不是execution()
這將編織調用客戶端代碼,而不是目標方法。所以你只需編織代碼和所有庫而不是JDK。
謝謝,我修改gc()源代碼後,編譯openJDK更容易。 –