2016-12-06 218 views
0

我想寫一個Visual Studio代碼(VSCode)的擴展,它允許我使用Visual Studio的本地C++調試器而不是gdb調試C++程序(目前它是VSCode支持的唯一選項) 。我看着Visual Studio Debugger Extensibility。但它只解釋瞭如何創建一個新的調試引擎,並將其從Visual Studio作爲前端進行調用。我想要做的是相反的。我想從不同的前端調用現有的 Visual Studio C++調試引擎,這恰好是VSCode。互聯網上沒有任何文檔可以實現這一目標。任何人都可以幫忙嗎?使用Visual Studio調試器調試C++

回答

1

我在VSCode團隊。要使用VSCode中的VS調試器,您需要編寫調試適配器擴展。 Here's some documentation on getting startedhere's the complete debug adapter protocol reference

嘗試看看一些現有的實現上手:

對於C++,還檢查了C++ tools for VSCode

希望有所幫助。


編輯 - 我似乎誤解了問題。以下是關於從外部應用程序中使用VS C++調試器的一些想法。

據我所知,Visual C++沒有公共API或接口,允許外部程序輕鬆地與它們接口。其他語言有更好的故事,因爲它們經常利用外部庫或者設計有記錄的調試器協議。該GDB machine interface是這種設計的一個很好的例子

我最好的建議是,你可以嘗試以利用[Visual Studio的Env.DTE接口( https://msdn.microsoft.com/en-us/library/envdte.debugger.aspx)以編程方式控制VS。 EnvDTE沒有很好的文檔記錄,可能並不完全符合你的要求,但它非常強大。

+0

嗨馬特。我知道VSCode的調試協議,並明白我必須編寫一個調試適配器。問題是我不知道我的調試適配器將如何調用Visual Studio的調試引擎。這就是我想要的一些幫助(對於視覺工作室團隊來說這是一個問題) –

+0

對不起,我完全誤解了你所問的問題的部分內容。我已經添加了一些從外部程序中使用VS C++調試器的想法。總之,對於Visual C++,我不確定這是否可行,但EnvDTE值得一試。其他語言/調試器有更好的故事 –

+0

謝謝馬特。難怪互聯網上沒有太多關於這個問題。我會試着看看EnvDTE的方法(儘管我沒有什麼希望,因爲它意味着自動化Visual Studio而不是調試引擎)。 –