
JVM
nijiaben
这个作者很懒,什么都没留下…
展开
-
java debug体系为什么不能debug到jdk里所有的代码
作为java码农肯定碰到过当我们debug到一些class的时候,发现当进入到某个方法里是看不到声明的入参名,取而代之的是arg0,arg1等,继续深入更是看不到局部变量,这主要是java类编译的时候没有加-g参数导致的,而为什么我们自己在eclipse中写的代码却是可以正常跟踪呢,原因很简单,因为eclipse自行编译的时候是带-g参数编译的。 这种问题在...2013-04-08 21:42:27 · 249 阅读 · 0 评论 -
浅谈jvm中Instrumentation的实现
想必不少人听说过javaagent,但是很少人听说Instrumentation,其实Instrumentation就是javaagent的实现机制,说到Instrumentation,就必须想了解java的attach机制,那就先说下attach的实现。 大家进行jstack的时候,是不是经常看到两个线程Signal Dispatcher和 Attach Liste...2013-04-12 19:54:14 · 474 阅读 · 0 评论 -
javaagent加载机制分析
在启动和运行期都可以加载agent代理,在启动的时候可通过-javaagent参数来执行agent代理,而在运行期就是通过attach这种机制动态load了。 如果在vm启动过程中加载agent,那么会在vm初始化过程中先执行libinstrument.dylib里InvocationAdapter.c的Agent_OnLoad方法,这里主要是实例化agent,...2013-04-14 19:05:08 · 844 阅读 · 0 评论 -
java虚拟机指令集
指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02 iconst_m1 将int型-1推送至栈顶 0x03 iconst_0 将int型0推送至栈顶 0x04 iconst_1 将int型1推送至栈顶 0x05 iconst_2 将int型2推送至栈顶 0x06 iconst_3 ...原创 2013-04-17 01:52:51 · 156 阅读 · 0 评论 -
从日志上理解java调试机制
java调试我想大家都玩过,或许因为非常完美地集成到了我们日常的IDE里,比如eclipse,netbeans,可是大家有没有想过它是怎么实现的呢,接下来我会从vm中打印的调试日志来跟大家认识下这个调试体系。 大家都是一点IDE里面的调试按钮,就轻松建立了调试环境,IDE其实是帮你做了些你可能不知道的事,请看如下图 你将会看到如下内容 其实这就是ecl...2013-05-30 00:01:59 · 362 阅读 · 0 评论