Sign in to follow this  

Understanding VS debugger output

This topic is 401 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi,

I've noticed that for a long time I'm ignoring some things in the Visual Studio C++ debugger output.

Just curious if someone can explain some things and perhaps give me some advice if/ how to 'solve' any potential problems.

 

Here's an example:

'Crealysm11.exe' (Win32): Loaded 'E:\projects\Crealysm11\Debug\Crealysm11.exe'. Symbols loaded.
'Crealysm11.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.
'Crealysm11.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
'Crealysm11.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\kernel32.dll'
'Crealysm11.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
'Crealysm11.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
'Crealysm11.exe' (Win32): Loaded 'C:\Program Files (x86)\AVG\Av\avghookx.dll'. Cannot find or open the PDB file.
'Crealysm11.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'. Cannot find or open the PDB file.
'Crealysm11.exe' (Win32): Loaded 'C:\Windows\SysWOW64\win32u.dll'. Cannot find or open the PDB file.
'Crealysm11.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'. Cannot find or open the PDB file.
'Crealysm11.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32full.dll'. Cannot find or open the PDB file.
'Crealysm11.exe' (Win32): Loaded 'C:\Windows\SysWOW64\D3DCompiler_47.dll'. Cannot find or open the PDB file.
IGIESW e:\projects\crealysm11\debug\crealysm11.exe found in whitelist: NOIGIWHW Game e:\projects\crealysm11\debug\crealysm11.exe found in whitelist: NO
Exception thrown at 0x77BAA6F2 in Crealysm11.exe: Microsoft C++ exception: _com_error at memory location 0x00AFC4E8.
Exception thrown at 0x77BAA6F2 in Crealysm11.exe: Microsoft C++ exception: _com_error at memory location 0x00AFD0C4.
Exception thrown at 0x77BAA6F2 in Crealysm11.exe: Microsoft C++ exception: _com_error at memory location 0x00AFD1E0.
Exception thrown at 0x77BAA6F2 in Crealysm11.exe: Microsoft C++ exception: _com_error at memory location 0x00AFE438.
Exception thrown at 0x77BAA6F2 in Crealysm11.exe: Microsoft C++ exception: _com_error at memory location 0x00AFE5E8.
The thread 0x17f8 has exited with code 0 (0x0).
The thread 0x1ad0 has exited with code 0 (0x0).
The thread 0x22e0 has exited with code 0 (0x0).
The thread 0x2ab4 has exited with code 0 (0x0).
The thread 0x22fc has exited with code 0 (0x0).
The thread 0x104c has exited with code 0 (0x0).

1. A lot of 'cannot find or open the PDB file'; can I somehow solve this, or should I ignore it?

2. What's with the whitelist; I think I only saw this first the first time a few days ago

3. Those exception _com error etc. only occur when I switch from windowed to fullscreen (D3D11 application) (going back to windowed doesn't give them). I don't use CComPtr for my d3d device, context, buffers etc, so I cannot explain why this happens.

4. I'm not programming for more then 1 thread explicitly, but I assume in the background multiple threads are created and uses, and in the debug output I can see that threads are closed when the program stops. Is this a correct assumption?

 

Thanks for letting me learn more :)

Share this post


Link to post
Share on other sites

1. PDB files are a visual studio file unless you want to debug the DLL's you can ignore that message. 

2. I'm not sure what whitelist is

3. Might not be to do with your code but by a driver or runtime so you should get away with ignoring them, more information here: http://www.gamedev.net/topic/596986-kernelbasedll-microsoft-c-exception-com-error-at-memory-location-0x0021e7dc/

4. So a thread will be created when your application is created/loaded and destroyed when your application closes, the OS kernel manages this so don't worry about it. It's a bit of a big topic but if you are interested in knowing more do a google search for how OS kernels work and how they manage threads, context switches and cores etc.

 

I hope that helps :)

Share this post


Link to post
Share on other sites

1.PDB files contain "debug symbols", i.e. information about the program that is useful for debugging, such as what line of source code corresponds to each potential breakpoint position. Visual Studio produces them wherever it builds a project in debug mode, then looks for them in various search paths (chiefly in the build output path where you compiled your program or in the same folder as the executable) as it loads DLLs.

 

Your log says:

'Crealysm11.exe' (Win32): Loaded 'E:\projects\Crealysm11\Debug\Crealysm11.exe'. Symbols loaded.

This means that, while debugging process Crealysm11.exe, executable E:\projects\Crealysm11\Debug\Crealysm11.exe was loaded and it had a matching PDB file, as can be expected for something you just compiled in debug mode.

All "errors" that follow are for basic Windows DLLs your program depends on; they don't have PDB files, but Visual Studio has other means to get the corresponding debug symbols.

In practice, you are likely to have trouble with missing PDB files only because of simple but not necessarily remediable mistakes in what you attempt to debug:

  • DLLs that you copied or downloaded from somewhere without their PDB file
  • DLLs that you compiled in release mode
  • DLLs that lost their PDB file because you compiled them but you skipped some deployment step (e.g. copying into the GAC): the loaded version is older than the unused one with a valid PDB file.

The worst that can happen is being unable to set breakpoints and see source code in those parts of the program while debugging.

Share this post


Link to post
Share on other sites

This topic is 401 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this