2012-06-28 125 views
0

我正在嘗試編寫一個插件,它將改變(更像是add)當前eclipse java調試器的功能。有關我正在嘗試完成的詳細信息,請參閱此主題:Writing a custom eclipse debugger。我正在提出一個新的問題來解決有關eclipse插件工作方式的一些混淆。擴展Eclipse JDT

所以,如果我想調整調試器(或JDT的任何部分),那麼我的理解是什麼允許通過插件發生這種情況,稱爲擴展點,基本上指向爲擴展功能授予訪問權限,在某種程度上控制你可以或不可以做的事情。我的第一個問題是,這是否是對這個概念的正確理解,如果是這樣的話,你如何找到這些擴展點(最終這對我的具體調試問題來說是一個很好的起點)?我的第二個問題是關於調試器,如果我想要一些如何從調試器(如變量/堆棧信息,基本信息顯示給用戶)拉數據並將其用於我自己的插件,是這樣的可能/你將如何開始接近它(這是擴展點的問題)?

我已經查看了eclipse調試器的源代碼,並且我對調試過程中發生了什麼有一個大概的想法,但是如何讓我的插件與調試器本身正在接收的數據通信/調試過程?

順便說一句,如果任何人都可以回答一些問題,特別是有關我的具體問題的,隨意在其他線程發佈的還有一個開放+200賞金和問題,在這裏也許可以幫助回答更廣闊問題在那裏發佈。

非常感謝您的幫助。

回答

2

您對擴展概念是正確的:現有的插件可能會提供一個擴展點 - 它期望其他插件提供功能的地方。

在Debug插件的情況下,您可以使用org.eclipse.debug.ui.DebugUITools的靜態方法; class:getDebugContext()方法返回當前活動的調試上下文,並且getDebugContextManager()服務添加對偵聽上下文更改的支持。我們有一個像這樣實現的插件:它偵聽調試上下文更改,並可視化Zest圖中的當前變量。上下文信息圍繞文件http://code.google.com/a/eclipselabs.org/p/debugvisualisation/source/browse/hu.cubussapiens.debugvisualisation/src/hu/cubussapiens/debugvisualisation/views/DebugVisualisationView.java中的第183行收集,值得一看。