Debugging 为什么VS2005中的调用堆栈只显示DLL调用而不显示原始调用?

Debugging 为什么VS2005中的调用堆栈只显示DLL调用而不显示原始调用?,debugging,dll,windows-services,visual-studio-2005,Debugging,Dll,Windows Services,Visual Studio 2005,请原谅我的无知,但我不熟悉Visual Studio或Windows DLL&services。通常我在嵌入式环境中工作,但不知何故(我想这是幸运的),我被选中对我们的一个Windows服务中发生的崩溃进行故障排除,实际上是在MSVCR80.DLL中,但我必须假设这是由我们的服务引起的(下面的Windows事件日志) 我遇到的问题是,当我连接到进程并使其崩溃时,调试器会中断,然后调用堆栈在mscvr80.dll和ntdll.dll中只有一些调用,就是这样,我们的服务没有调用这些库。我猜这个库是多

请原谅我的无知,但我不熟悉Visual Studio或Windows DLL&services。通常我在嵌入式环境中工作,但不知何故(我想这是幸运的),我被选中对我们的一个Windows服务中发生的崩溃进行故障排除,实际上是在MSVCR80.DLL中,但我必须假设这是由我们的服务引起的(下面的Windows事件日志)

我遇到的问题是,当我连接到进程并使其崩溃时,调试器会中断,然后调用堆栈在mscvr80.dll和ntdll.dll中只有一些调用,就是这样,我们的服务没有调用这些库。我猜这个库是多线程的,我看到的堆栈只是其中的一个线程。但是当VS调试器中断时,它不是暂停所有线程吗?有没有办法检查其他线程的调用堆栈?还是我在这里完全偏离了底线

再一次,请原谅我在这方面的无知。如果您能提供任何建议或指导,我们将不胜感激。提前谢谢


-有两种可能性:

  • 正如您所说,您看到的是错误的线程,在这种情况下,您可以通过Debug/Windows/Threads使用Threads窗口切换到正确的线程。(但这不太可能——当线程崩溃时,VS将向您显示该线程。)

  • 您需要加载系统DLL的符号-Visual Studio有时无法在没有符号的情况下跟踪堆栈跟踪。转到工具/选项/调试/符号,并确保您正在从Microsoft获取符号


  • 谢谢你的回复,但这两件事似乎都不是。。。如果/当我最终找到答案时,我会更新-H
    Faulting application name: MySrvc.exe, version: 0.0.0.0, time stamp: 0x4fee02e5
    Faulting module name: MSVCR80.dll, version: 8.0.50727.4940, time stamp: 0x4ca2b271
    Exception code: 0xc000000d
    Fault offset: 0x00008aa0