4

基本上,我正在开发一个第三方软件将使用的 DLL(一个开放接口)。我想在这个第三方 DLL 加载我的 DLL 后对其进行调试,因为我发现了一个特定的错误,只有当我的 DLL 被这个第三方软件加载时才会发生(我的 DLL 对于接受这个开放接口的所有其他软件都可以正常工作)

我在我的代码 DLL 中设置了 __debugbreak() 并运行第三方软件。一个 Visual Studio 对话框确实跳了出来,询问我是否要调试。但是在我单击“确定”之后,Visual Studio 没有进入显示我设置断点的代码行的 Visual Studio 窗口,而是崩溃了。

我发现第三方软件加载了我的 DLL 并在另一个线程中运行它。我怀疑这是第三方软件崩溃的原因,因为有效地 __debugbreak() 在主线程启动的线程中抛出了一个未捕获的执行。

在这种情况下,我该如何调试我的 DLL?

4

1 回答 1

0

不幸的是 VS 崩溃了,但你可能会找到解决方法。

最好提前开始调试会话。或者当进程在消息框或其他一些输入上被阻止时,使用“附加到进程”。也更好地使用断点。

使用 __debugbreak() 或强制访问冲突尝试询问 VS 的新实例而不是现有实例。

于 2013-06-27T13:21:23.390 回答