2009-10-14 74 views

回答

1

您可能會喜歡閱讀this它很好地解釋了這一點。你正在尋找的位是RemoteStackFrame,這就是事物如何可以得到的東西目前在範圍內

它是一個複雜的主題,但我希望這有助於。

1

如果你使用Eclipse,你可以使用提供與Eclipse JDT API。如果您要創建Plugin項目,這些將可用。

1

IDE通常使用一個調試API的組合,比如由[Java Platform Debugger Architecture] [1]提供的調試API,它是關於它正在調試的代碼結構的知識。

讀取本地變量的值(即使在調試時),也要求使用調試信息編譯類文件。在Java中(和許多其他語言一樣),必須顯式生成調試信息,以便在運行時訪問它。特別是局部變量和從字節碼到源行號的映射。

[JDI] [2] api相當容易實現一個簡單的調試器。但是,如果你正在尋找的是某種局部變量的反映,那麼你運氣不好。

我唯一能想到的最後一種情況是使用某種字節碼操作庫,如[BCEL] [3]或[ASM] [4],並在加載它之前修改字節碼以允許您訪問運行時的變量值。

這肯定會減慢代碼並且難以實現。如果你退後一步思考,最終可能會更容易避免這個問題。

(抱歉錯位鏈接,但StackOverflow的是限制的鏈路的數目)

[1]:HTTP:// java.sun.com/javase/technologies/core/toolsapis/jpda/ [2 ]:http://java.sun.com/javase/6/docs/jdk/api/jpda/jdi/index.html [3]:http://jakarta.apache.org/bcel/ [4] :http:// asm.ow2.org/

相關問題