Я просто начать обучение
JVM TI
О команде: Java. Java -agentpath: ../ tool.dll JavaClass, Я знаю, что естьAgent_OnLoad()
метод вdll
и, возможно, установить какое-то событиеcallback method
. и я знаю, что JVM выполнитьAgent_OnLoad()
первым, а затем выполнитьjavaClass
.Agent_OnUnLoad()
также называют JVM.когда выполнение метода Agent_UnLoad() о «Java -agentpath: C: /tool.dll JavaClass
Тогда возникает проблема, как jvm знает, когда звонит Agent_OnUnLoad() method
. Во-первых, я думаю, что после выполнения javaClass
jvm вызовет Agent_OnUnload()
, но затем я отброшу эту мысль, потому что в это время, возможно, dll
делает это, например. запись данных на диск.
Так как JVM знаю, что это подходящее время, чтобы вызвать метод Agent_OnUnLoad()?
, но я встречаю
condition
, который вызываетсяAgent_OnUnload
, и jvm все еще работает. Например, у меня есть ATest.java, BTest.java ... ZTest.java и * execute order * возможноAgent_Onload
* ATest.java BTest.java * ...Agent_OnUnload
... * ZTest.java *, то есть , *** вызывается Agent_OnUnload и запускается jvm *** –@cainiaofei Это означает, что некоторый класс вызвал 'System.exit()' или 'Runtime.getRuntime(). halt()' – apangin