Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 制作自己的调试器_Java_Debugging_Bytecode - Fatal编程技术网

Java 制作自己的调试器

Java 制作自己的调试器,java,debugging,bytecode,Java,Debugging,Bytecode,我计划构建自己的字节码调试器以查看: 操作数堆栈中的当前“对象” 具有框架的视觉表示 在Java堆(运行程序的)中有一个声明对象的列表 有一个常量池等的列表 问题是我想为我的程序设置一个断点选项,并实际查看应用程序 我在互联网上找到了调试程序的方法,我发现JDPA wich可能会帮助我完成我的项目 但是,我不确定这是否是件好事,因为我不想要Java调试器,我真的需要字节码调试器 如何在项目中插入字节码断点?我在互联网上看到“0xca被保留为调试器的断点指令,不被语言使用”。这是好办法吗?选项

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

  • 操作数堆栈中的当前“对象”
  • 具有框架的视觉表示
  • 在Java堆(运行程序的)中有一个声明对象的列表
  • 有一个常量池等的列表
问题是我想为我的程序设置一个断点选项,并实际查看应用程序

我在互联网上找到了调试程序的方法,我发现JDPA wich可能会帮助我完成我的项目

但是,我不确定这是否是件好事,因为我不想要Java调试器,我真的需要字节码调试器

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

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

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

它可能是字节码位置或源代码行位置

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