2011-12-21 59 views
0

我投射到我自己的字節碼調試器構建查看:使我自己的調試器

  • 在操作數堆棧中的電流「物」;
  • 具有幀的視覺表示;
  • 在Java堆(正在運行的程序)中有已聲明對象的列表;
  • 有常量池列表等

的問題是我想要一個斷點選項設置到位,以我的程序,看看在實際中的應用。

我在互聯網上查看調試器的方式,我發現JDPA可能可以幫助我做我的項目。

但是,我不確定它的好處,因爲我不需要Java調試器,我真的需要一個Bytecode調試器。

如何在項目中插入字節碼斷點?我在互聯網上看到「0xca被保留爲調試器的斷點指令,並且不被該語言使用」。這是好方法嗎?

回答

2

選項#1: 使用JPDA,您可以使用com.sun.jdi.request.EventRequestManager.createBreakpointRequest()方法,您可以添加一個斷點到任何Location。根據Location類的Java文檔,它是

目標VM的執行代碼內的一個點。

它可能是一個字節碼位置或源行位置。

選項2:如果您可以找到字節碼所在的方法,則可以在基於JPDA的調試器中放置一個仿真斷點,因爲您可以從函數的開始處指定字節碼的偏移量。

相關問題