2
是否有可能使用EnvDTE爲.vsix visual studio擴展捕獲本地調試窗口使用的調試數據?或者是否有可能通過另一種方法?在EnvDTE中調試時捕獲VS局部變量
我想創建一個自定義的本地窗口,我們可以修改它來顯示我們喜歡的一些更重的內容,而不會犧牲高級用戶的原始本地窗口。理想的解決方案是獲取發送到當地人窗口的數據,以便我可以構建自己的樹。
是否有可能使用EnvDTE爲.vsix visual studio擴展捕獲本地調試窗口使用的調試數據?或者是否有可能通過另一種方法?在EnvDTE中調試時捕獲VS局部變量
我想創建一個自定義的本地窗口,我們可以修改它來顯示我們喜歡的一些更重的內容,而不會犧牲高級用戶的原始本地窗口。理想的解決方案是獲取發送到當地人窗口的數據,以便我可以構建自己的樹。
原來這其實很簡單!
DTE dte = (DTE).Package.GetGlobalService(typeof(DTE));
if(dte.Debugger.CurrentStackFrame != null) // Ensure that debugger is running
{
EnvDTE.Expressions locals = dte.Debugger.CurrentStackFrame.Locals;
foreach(EnvDTE.Expression local in locals)
{
EnvDTE.Expressions members = expression.DataMembers;
// Do this section recursively, looking down in each expression for
// the next set of data members. This will build the tree.
// DataMembers is never null, instead just iterating over a 0-length list.
}
}
每個表達式包含:
希望這有助於任何人都希望做類似的東西!
還有一件事。注意你如何往下看成員樹,因爲有許多類型可能形成無限參考循環的實例。 – Kunan