VirtualBox 是一款 x86 虚拟机软件。原由德国innotek公司开发,2008年Sun收购了Innotek,而Sun于2010年被Oracle收购,2010年1月21日改 名成 Oracle VM VirtualBox。VirtualBox 可在 Linux 和 Windows 主机中运...
分类:
其他好文 时间:
2014-12-09 21:20:25
阅读次数:
257
引入:上文讨论了Agent如何利用环境指针访问VM(管理类),这里讨论如何管理对象。分类9:对象管理a.GetObjectSize.获取对象的大小,jvmtiError
GetObjectSize(jvmtiEnv*env,
jobjectobject,
jlong*size_ptr)注意,这不是真实大小,这只是从对象的定义代码中获得的一个预估值。..
分类:
其他好文 时间:
2014-12-09 15:56:46
阅读次数:
182
引入:上文中提到Agent如何利用环境指针访问VM的(Watch)功能,这里主要讲解如何去管理类的。分类9:管理类a.GetLoadedClasses.获得虚拟机中所有被加载的类的数组。jvmtiError
GetLoadedClasses(jvmtiEnv*env,
jint*class_count_ptr,
jclass**classes_ptr)从返回值可以看出,cl..
分类:
其他好文 时间:
2014-12-09 15:56:45
阅读次数:
243
引入:上文中我们已经探讨了Agent如何利用环境指针访问VM(对象级的操作),现在我们讨论让Agent利用环境指针访问类的字段。分类10:字段访问a.GetFieldName.获取某类的某字段名字jvmtiError
GetFieldName(jvmtiEnv*env,
jclassklass,
jfieldIDfield,
char**name_ptr,
char**si..
分类:
其他好文 时间:
2014-12-09 15:53:02
阅读次数:
216
引入:上文中我们讲解了Agent如何利用环境指针来访问VM的字段访问部分,现在来讲解方法访问部分。分类11:方法访问a.GetMethodName.获取方法名字和签名jvmtiError
GetMethodName(jvmtiEnv*env,
jmethodIDmethod,
char**name_ptr,
char**signature_ptr,
char**generic_ptr)b.Get..
分类:
其他好文 时间:
2014-12-09 15:51:20
阅读次数:
201
先停止运行,双击图片中的指定位置,显示具体配置页面。点击图片中链接在“arguments”标签卡中对“VM arguments”进行配置,在第一行添加-Xms256M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=128M点击“apply”按钮。Tomcat停...
分类:
系统相关 时间:
2014-12-09 15:29:08
阅读次数:
282
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。由于APK文件本身就是压缩包,如果用户的电脑上装了WinRAR(...
分类:
移动开发 时间:
2014-12-09 13:57:33
阅读次数:
345
free -msyncecho 3 > /proc/sys/vm/drop_caches
分类:
系统相关 时间:
2014-12-09 13:57:08
阅读次数:
194
引入:上文我们讲解了Agent如何利用环境指针访问VM(操作局部变量篇),这里主要关注于如何操作断点。这个在调试期间非常频繁的被使用。分类7:断点操作a.SetBreakPoint.设置断点,它会产生一个BreakPoint事件。jvmtiError
SetBreakpoint(jvmtiEnv*env,
jmethodIDmethod,
jloca..
分类:
其他好文 时间:
2014-12-09 12:30:15
阅读次数:
116
引入:上文我们讲解了Agent如何利用环境指针访问VM的操作断点部分,这里我们详细讲解观察字段篇。这也是我们调试期间用的最多的操作。因为我们要不断从WatchField看他们值的改变。分类8:观察字段a.SetFieldAccessWatch.启用对某字段进行访问的观察。每次访问都会创建一个Field..
分类:
其他好文 时间:
2014-12-09 12:27:58
阅读次数:
210