制作我自己的调试器

时间:2011-12-21 00:31:03

标签: java debugging bytecode

我计划构建自己的字节码调试器来查看:

  
      
  • 操作数堆栈中的电流“对象”;
  •   
  • 有框架的直观表示;
  •   
  • 在Java堆(正在运行的程序中)中包含已声明对象的列表;
  •   
  • 有一个常量池等列表
  •   

问题是我想为我的程序设置断点选项并真实地查看应用程序。

我在互联网上查看调试器的方式,我发现JDPA可能可以帮助我完成我的项目。

但是,我不确定它是好事,因为我不想要Java调试器,我真的需要一个字节码调试器。

如何在项目中插入字节码断点?我在互联网上看到“0xca被保留为调试器的断点指令,并且不被语言使用”。这是好方法吗?

1 个答案:

答案 0 :(得分:2)

选项#1: 使用JPDA,您可以使用com.sun.jdi.request.EventRequestManager.createBreakpointRequest()方法向任何Location添加断点。根据{{​​1}}类的Java文档,它是

  

目标VM的执行代码中的一个点。

它可以是字节码位置或源行位置。

选项#2:如果你能找到字节码所在的方法,你可以在基于JPDA的调试器中放置一个人工断点,因为你可以从函数的开头告诉字节码的偏移量。