Jump to content
  • Advertisement
Sign in to follow this  
RaptorZero

WinDbg help - symbols loaded but no info

This topic is 4746 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, after a long time debugging my program with only asserts and dialog boxes, I finaly ran into a more deeper error. In order to debug it I downloaded "Debugging tools for Windows" so I could use WinDgb. The problem is that I can't make WinDbg use my symbols file. The app was compiled with vc++ 2003 toolkit so it generates a vc70.pdb file for symbols. After starting WinDbg I have to copy the image name (usualy image00400000) and rename the .pdb file to image00400000.pdb, then I reload the symbols and the only error message is "*** WARNING: Unable to verify checksum for image00400000" wich shouldn't be much trouble. By typing 'lm' I confirm that the symbols are actually loaded for my app. The problem is that nothing changes in WinDbg (no, I'm not in ntdll), the functions in the call stack continues to be called something like 'image00400000+0x1635f' and source level debugging says there is no symbol information for it. Has anyone ever managed to do source level debugging in WinDbg? Can anyone help me? Thanks in advance for the help.

Share this post


Link to post
Share on other sites
Advertisement
> After starting WinDbg I have to copy the
> image name (usualy image00400000) and rename
> the .pdb file to image00400000.pdb

What do you mean by that. If you build hello.exe, there should also be a hello.pdb generate in the same directory. Now if you debug hello.exe from the directory you build to, it has a path to it's corresponding .pdb in it.

You shouldn't move or rename anything. Start out simple. Try making a simply project from the wizard in visual studio. First, can you debug it from visual studio and get symbols loaded? Then after that, try windbg with the same files.

Share this post


Link to post
Share on other sites
Yes, I also found strange that I had to rename the file but that was the ony way I could get WinDbg to load those symbols.

The fact is that vc++ toolkit 2003 produces a file called vc70.pdb, the exe is called unnamedprj.exe and inside WinDbg the app apears as image00400000.

If I leave vc70.pdb as it is WinDbg says it hasn't found any symbols file, if I rename it to image00400000.pdb then WinDbg loads it ok but doesn't seems to use it.

I'll take your advice and try to debug a 'hello world', thanks.

Share this post


Link to post
Share on other sites
vc70.pdb is used between the compiler and linker. It's not what you want, so just ignore it.

Verify that you have pdb generation enabled, it's on by default in debug builds, but not in release builds. For the compiler you should set "Debug Info Format to "Program Database" and for the linker you should enable "Generate Debug Info".

Share this post


Link to post
Share on other sites
Oh, I was just setting /Zi on the compiler and I thought that would be enough. Setting the linker option /debug generates a pdb file with the same name as the exe and it works perfectly in the WinDbg.

Thanks a lot developer! You saved my life.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!