我写了一个WinDbg插件来帮助我的开发人员调试我们的应用程序。更具体地说,它有助于对我们的应用程序中发现的数据结构运行特殊的诊断,并避免开发人员必须手动检查大量数据结构信息。
我现在正在考虑将此WinDbg移植到Visual Studio 2019(作为VSIX扩展),但是我不知道从哪里开始。我可以研究如何编写这样的扩展,但是我不知道从哪里开始在Visual Studio中寻找与调试器相关的API。
答案 0 :(得分:1)
@Patrick我在写评论后一直在谷歌搜索,但忘了更新
它似乎与拥有自己的IDebugInterfaces集(称为IDebugEngine1,2等)
我从来没有编码过vs扩展名,但是我试图在有时间的时候修补一个更新
同时,您可以通读此documentation
它似乎是c#,再次不是我的强项
Requirements
Header: Msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Assembly: Microsoft.VisualStudio.Debugger.Interop.dll
提供了两个示例,您可以参考here
我下载了此sample,但没有足够的时间
看来,api的示例与附件完全不同,如下所示
/* static */
DebuggedProcess^ Worker::AttachToProcess(ISampleEngineCallback^ callback, int processId)
{
ASSERT(Worker::MainThreadId != Worker::CurrentThreadId);
HANDLE hProcess = Win32HandleCall( ::OpenProcess(
PROCESS_ALL_ACCESS,
FALSE,
processId
));
String^ nameFromHandle = GetProcessName(hProcess);
String^ processName = System::IO::Path::GetFullPath(nameFromHandle);
Win32BoolCall( ::DebugActiveProcess(
processId
) );
DebuggedProcess^ process = gcnew DebuggedProcess(Attach, callback, hProcess, processId, processName);
return process;
}