系列有关问题《关于vs2005调试》有关问题二:怎样解读调试窗口的信息

系列问题《关于vs2005调试》问题二:怎样解读调试窗口的信息?
前言:vs2005调试对于像我这种新手是个很大的难题,就好比刚开始学习direct编程却老是不会加载lib库一样的困难,无数的连接错误能把人逼疯了。调试是个很重要的过程,我希望大家能帮助一下我这个新人。在大功告成后,我将把所有的资料整理出来给更新的新人看,以帮助大家一起渡过调试的难关,所以也请DX多多费心。
      PS:这里针对的是C++的程序,windows的普通API调用,多线程来说,使用的是vs2005。

“G2std2D_EditMap.exe”:   已加载“F:\my   file\Visual   Studio   2005\Projects\G2std2D_EditMap\debug\G2std2D_EditMap.exe”,已加载符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\ntdll.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\kernel32.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\user32.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\gdi32.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\winmm.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\advapi32.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\rpcrt4.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\dinput8.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\msvcrt.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\ddraw.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\dciman32.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\psapi.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\imm32.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\lpk.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\usp10.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\UXTHEME.DLL”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\MSCTF.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\version.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已卸载“C:\WINDOWS\system32\version.dll”
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\MSCTFIME.IME”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\ole32.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\hid.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\setupapi.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\wintrust.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\crypt32.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\msasn1.dll”,未加载任何符号。
“G2std2D_EditMap.exe”:   已加载“C:\WINDOWS\system32\imagehlp.dll”,未加载任何符号。


------解决方案--------------------
“G2std2D_EditMap.exe”: 已加载“C:\WINDOWS\system32\ntdll.dll”,未加载任何符号。
----------
在VS的调试环境下,当一个应用程序运行并加载它需要的DLL的时候,VS就试图在指定的目录中寻找和被加载DLL版本对应的.pdb文件,.pdb文件是在编译阶段由编译器生成的,里面保存的符号表,符号表中是符号名和它地址的地址。只有这样,你在调试器中看到的不再是无法辨认的内存地址,而是和这个地址对应的变量名或者函数名。

线程 'Win32 线程 ' (0x8e0) 已退出,返回值为 1 (0x1)。
-----
普通的Win32 应用程序应该都是单线程的程序,这个线程由进程维护,在进程被初始化的时候这个线程自动的被进程创建,而应用程序的主函数就运行在这个线程上。(0x8e0)应该是线程的ID,而返回值1(0x1)说明主程序在运行时遇到错误,返回一个错误号。

HEAP[G2std2D_EditMap.exe]: Invalid Address specified to RtlFreeHeap( 003D0000, 003D2F08 )
----------
应用程序中对内存的使用有问题,导致内存访问有错。