[讨论] 关于HOTSPOT动态生成代码的调试技巧
docman
2011-04-21
在HOTSPOT调试中,codebuffer中的代码都是动态生成的,若执行到其中发生错误或异常,显然不能像普通程序一样设断点、查看调用栈等,一般可通过TraceBytecodes等选项确定出错的JAVA指令位置,即使是解释模式,一条JAVA指令涉及的本地指令也非常可观,大家有什么方法方便快速定位问题或理清调用关系?
|
|
RednaxelaFX
2011-04-21
要看出错是什么层次上的…具体来个场景?
|
|
docman
2011-04-22
比如,Xint运行时,在MacroAssembler::debug中报错,这不是第一现场,而要追踪到出错点比较麻烦
|
|
wkoffee
2011-04-23
简单看了一下,MacroAssembler::debug主要是被interpreter中的stop调用,stop会带一个msg参数,如果你的error log中打出了这个信息,你可以用这个msg去代码中搜索。如果你有debug版本的jvm的话可以直接设断点在MacroAssembler::debug中,然后根据stack回溯到出错函数。
Xint也出错,你们是不是正在移植到另一个cpu? |
|
docman
2011-04-24
嗯,楼上正解,确实可以逐步回溯到出错点。我想问的是是否还有方便快速的方法,比如类似hsdis这样的辅助手段或技巧
|
|
RednaxelaFX
2011-05-03
docman 写道 嗯,楼上正解,确实可以逐步回溯到出错点。我想问的是是否还有方便快速的方法,比如类似hsdis这样的辅助手段或技巧
如果你是已经遇到了问题并且生成了core dump的话,用Serviceability Agent(SA)里的CLHSDB也可以的。它在$JAVA_HOME/lib/sa-jdi.jar里。 |
相关讨论
相关资源推荐
- Adobe Source Libraries-开源
- Adobe Indesign Calendar Wizard-开源
- Adobe 公司的开源等宽字体
- ping pong mobile:手机乒乓游戏(Adobe AIR)-开源
- Adobe AIR应用程序,用于重命名电影文件和DVD文件夹Zeeb-开源
- adobe开源免费的程序员字体source code pro
- Haxentric:类似于Adobe / Apache Flex的Haxe / HTML / JavaScript框架-开源
- Lightroom Keywords Manager:Adobe Lightroom 的简单关键字管理器-开源
- Xtreme Flash Policy Server:Adobe Flash 套接字策略文件服务器(跨域策略)-开源
- Swf Reader:Adobe Flash SWF 文件阅读器、编辑器-开源