C++ VS2010远程调试器在没有断点的位置停止
我正在远程调试Microsoft FSX的dll(C++,非托管)(我不知道这是否重要)。dll编译为“多线程dll”,因为它不作为“多线程dll调试”工作。我的dll目前只包含一个C++ VS2010远程调试器在没有断点的位置停止,c++,visual-studio-2010,remote-debugging,visual-studio-debugging,debugbreak,C++,Visual Studio 2010,Remote Debugging,Visual Studio Debugging,Debugbreak,我正在远程调试Microsoft FSX的dll(C++,非托管)(我不知道这是否重要)。dll编译为“多线程dll”,因为它不作为“多线程dll调试”工作。我的dll目前只包含一个DllStart和DllStop函数,这是FSX中的标准 常规调试可以工作(它在断点处停止),但不知何故,调试器也会在我没有设置断点的地方停止。首先,这个问题出现在“没有可用来源”的风格中。检查后 及 对我来说唯一可行的解决方案就是安装上面提到的。现在我不再获得“无源代码”选项卡,但调试器仍然会在代码之外的某个地方
DllStart
和DllStop
函数,这是FSX中的标准
常规调试可以工作(它在断点处停止),但不知何故,调试器也会在我没有设置断点的地方停止。首先,这个问题出现在“没有可用来源”的风格中。检查后
bglmanx.dll
是另一个dll,也是由FSX启动的。我在想,好吧,也许符号有点含糊不清,并将我的函数重命名为DllStartFSXM
和DllStopFSXM
(因此是唯一的)。没有改善
有什么想法和提示吗?这可能是由于其他代码中有_asm int 3或DebugBreak引起的
也许有某种方法可以禁用这些命令或重新嵌入DebugBreak函数?当调试器自行停止时,是否可以继续应用程序?如果不是,这实际上可能是dll中的一个bug,比如只在调试模式下发生的崩溃。是的,我可以继续。最终它崩溃了FSX(只有在调试时,没有它就可以了),但它不是我的DLL(我可以说,因为即使函数是空体,它也会发生)。这就是为什么我需要绕开它。