Why does my call stack in VS2005 only show DLL calls and not the originating call?

0

Please forgive my ignorance, but I am not familiar with Visual Studio or Windows DLLs & services. Normally I work in an embedded environment but somehow (just lucky I guess) I got selected to troubleshoot a crash that occurred in one of our Windows services, well actually in MSVCR80.DLL, but which I must presume was caused by our service (Windows event log below)

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

The trouble I'm having is that when I attach to the process and then get it to crash, the debugger breaks and then the call stack only has some calls within mscvr80.dll and ntdll.dll and that's it, no calls from our service into those libraries. My guess is that the library is multi-threaded and the stack I'm seeing is just one of it's threads. But when the VS debugger breaks, does it not pause all threads? And is there a way to examine the call stacks of the other threads? Or am I completely off base here?

Again, please forgive my ignorance in this area. Any advice or direction you can offer will be greatly appreciated. Thanks in advance!

-H

debugging
dll
windows-services
visual-studio-2005

1 Answer

0

There are two possibilities:

  1. You're looking at the wrong thread, as you say, in which case you can switch to the right one using the Threads window, via Debug / Windows / Threads. (But that's unlikely - when a thread crashes, VS will show you that thread.)

  2. You need to load the symbols for the system DLLs - Visual Studio sometimes can't follow stack traces without the symbols. Go to Tools / Options / Debugging / Symbols and make sure you're obtaining symbols from Microsoft.

answered on Stack Overflow Mar 5, 2013 by RichieHindle

User contributions licensed under CC BY-SA 3.0