VS2005安装SP1补丁后,用F11单步调试跟不进MFC源码。未装SP1前是好的,还望处理过类似问题的兄弟,予以赐教。(别和我说重装VC或不装SP1补丁)

解决方案 »

  1.   

    第一个函数WinMain看到了吗?有的是封装成了LIB或DLL就没办法跟进了。
      

  2.   

    你是不是测试的是同一个函数的源码?MFC内的源码只有很少一部分是有的,绝大多数没有,跟不进是正常,跟得进是运气好
      

  3.   

    顺便就举个例子,WinMain看得到,AfxWinMain就跟不进去了。和未装SP1前设置一致。
    没有人遇到过类似问题?
      

  4.   

    我的是VS2005标准版,XP系统,打了SP1补丁后没这个问题
      

  5.   

    跟不进去有什么提示吗?另外,启动程序后看一下Output窗口输出的信息,看一下MFC模块的符号有没有Load进来,有没有错误提示。
      

  6.   

    在自己写的源代码里没有提示,跟出自己的源代码,会提示是否显示汇编(如跟到Run循环),MFC模块的符号有Load进来
    没错误,简单的说就是F11和F10一样了。
      

  7.   

    那区别大了去了,例如 ,我的一个函数内调用了AfxGetApp( ),我想知道AfxGetApp( )具体做了什么,我只要在AfxGetApp( ); 下个断点,用F11跟进AfxGetApp的源代码就是了,但现在用F11就直接执行过去了。郁闷!!
      

  8.   

    F11跟进AfxGetApp();时,下面两个能跟到吗?_AFXWIN_INLINE CWinApp* AFXAPI AfxGetApp()
    { return afxCurrentWinApp; }AFX_MODULE_STATE* AFXAPI AfxGetModuleState()
    {
    _AFX_THREAD_STATE* pState = _afxThreadState;
    AFX_MODULE_STATE* pResult;
    if (pState->m_pModuleState != NULL)
    {
    // thread state's module state serves as override
    pResult = pState->m_pModuleState;
    }
    else
    {
    // otherwise, use global app state
    pResult = _afxBaseModuleState.GetData();
    }
    ASSERT(pResult != NULL);
    return pResult;
    }
      

  9.   

    检查一下你链接的是否调试版的MFC库
      

  10.   

    问题还是没解决
    debug.exe D:\编程练习\debug\debug\debug.exe N/A N/A 已加载符号。 D:\编程练习\debug\debug\debug.pdb 1 1.00.0.1 2008-5-4 9:36 00400000-00438000 [2140] debug.exe: 本机
    ntdll.dll C:\WINDOWS\system32\ntdll.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\ntdll.pdb\36515FB5D04345E491F672FA2E2878C02\ntdll.pdb 2 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158) 2004-8-17 7:38 7C920000-7C9B4000 [2140] debug.exe: 本机
    kernel32.dll C:\WINDOWS\system32\kernel32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\kernel32.pdb\CE65FAF896A046629C9EC86F626344302\kernel32.pdb 3 5.1.2600.3119 (xpsp_sp2_gdr.070416-1301) 2007-4-16 23:54 7C800000-7C91D000 [2140] debug.exe: 本机
    mfc80ud.dll C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugMFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_257740a4\mfc80ud.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\MFC80UD.i386.pdb\212B6D5809E7410CB08139419AA07F47e\MFC80UD.i386.pdb 4 8.00.50727.762 2006-12-2 16:06 782E0000-78531000 [2140] debug.exe: 本机
    msvcr80d.dll C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f\msvcr80d.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\msvcr80d.i386.pdb\8E046EEEFCBD4D949664C00D316DF6001\msvcr80d.i386.pdb 5 8.00.50727.762 2006-12-2 14:50 10200000-10321000 [2140] debug.exe: 本机
    msvcrt.dll C:\WINDOWS\system32\msvcrt.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\msvcrt.pdb\A678F3C30DED426B839032B996987E381\msvcrt.pdb 6 7.0.2600.2180 (xpsp_sp2_rtm.040803-2158) 2004-8-17 7:40 77BE0000-77C38000 [2140] debug.exe: 本机
    gdi32.dll C:\WINDOWS\system32\gdi32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\gdi32.pdb\CA5BB3941A9845EA8DF5376CE1C842F82\gdi32.pdb 7 5.1.2600.3316 (xpsp_sp2_gdr.080219-1316) 2008-2-20 14:50 77EF0000-77F37000 [2140] debug.exe: 本机
    user32.dll C:\WINDOWS\system32\user32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\user32.pdb\92D15332471547DCA0D75061B8B6CDA42\user32.pdb 8 5.1.2600.3099 (xpsp_sp2_gdr.070308-0222) 2007-3-8 23:37 77D10000-77D9F000 [2140] debug.exe: 本机
    shlwapi.dll C:\WINDOWS\system32\shlwapi.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\shlwapi.pdb\13EB1F3B280D419DA99D564D24FABF4A2\shlwapi.pdb 9 6.00.2900.3268 (xpsp_sp2_gdr.071206-1518) 2007-12-7 9:05 77F40000-77FB6000 [2140] debug.exe: 本机
    advapi32.dll C:\WINDOWS\system32\advapi32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\advapi32.pdb\455D6C5F184D45BBB5C5F30F829751142\advapi32.pdb 10 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158) 2004-8-17 7:37 77DA0000-77E49000 [2140] debug.exe: 本机
    rpcrt4.dll C:\WINDOWS\system32\rpcrt4.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\rpcrt4.pdb\2D7278066B8B4F0AAA1AB3E4F8CEA0DA2\rpcrt4.pdb 11 5.1.2600.3173 (xpsp_sp2_gdr.070709-0051) 2007-7-9 21:09 77E50000-77EE2000 [2140] debug.exe: 本机
    secur32.dll C:\WINDOWS\system32\secur32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\secur32.pdb\85DD72BF4CAD42EFB989699A8B082F1D2\secur32.pdb 12 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158) 2004-8-17 7:38 77FC0000-77FD1000 [2140] debug.exe: 本机
    comctl32.dll C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\MicrosoftWindowsCommon-Controls-6.0.2600.2982-comctl32.pdb\C0A72EE9578847AAB7770CF02FFED0941\MicrosoftWindowsCommon-Controls-6.0.2600.2982-comctl32.pdb 13 6.0 (xpsp.060825-0040) 2006-8-25 23:49 77180000-77283000 [2140] debug.exe: 本机
    oleaut32.dll C:\WINDOWS\system32\oleaut32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\oleaut32.pdb\659B514A88A24FB6ADB4F29A9BB066E42\oleaut32.pdb 14 5.01.2600.3266 2007-12-5 2:40 770F0000-7717B000 [2140] debug.exe: 本机
    ole32.dll C:\WINDOWS\system32\ole32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\ole32.pdb\683B65B246F4418796D2EE6D4C55EB112\ole32.pdb 15 5.1.2600.2726 (xpsp_sp2_gdr.050725-1528) 2005-7-26 12:39 76990000-76ACD000 [2140] debug.exe: 本机
    imm32.dll C:\WINDOWS\system32\imm32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\imm32.pdb\2C17A49C251B4C8EB9E2AD13D7D9EA162\imm32.pdb 16 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158) 2004-8-17 7:38 76300000-7631D000 [2140] debug.exe: 本机
    lpk.dll C:\WINDOWS\system32\lpk.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\lpk.pdb\C8E0E10EECAB4E90A1D1E442AF0AD0001\lpk.pdb 17 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158) 2004-8-17 7:37 62C20000-62C29000 [2140] debug.exe: 本机
    usp10.dll C:\WINDOWS\system32\usp10.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\usp10.pdb\14C8D7F8AB3C48A4B95A73BAC9A6B02C1\usp10.pdb 18 1.0420.2600.2180 (xpsp_sp2_rtm.040803-2158) 2004-8-17 7:38 73FA0000-7400B000 [2140] debug.exe: 本机
    mfc80CHS.dll C:\WINDOWS\WinSxS\x86_Microsoft.VC80.MFCLOC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_91481303\mfc80CHS.dll N/A N/A 未使用调试信息生成二进制文件。 20 8.00.50727.762 2006-12-2 16:07 5D360000-5D36A000 [2140] debug.exe: 本机
    ////////////////////////////////////////////////////////////////////////////////////////////
    以上是载入的模块信息,是否和(去除源信息)有关
      

  11.   

    真的和(去除源信息)有关,问题已解决,不过代价很沉重(重装了VC),但找到了问题的症结所在,也算是没白折腾一回,现把问题症结写出来,以防其他弟兄重蹈覆辙。
       开始我以为是装了SP1补丁引起的问题,事后才知道跟这没关系,可能是安装了Debugging Tools and Symbols有关,因为VS安装的时候会在C:\WINDOWS\Symbols位置安装和VS匹配的相关MFCXXX.pdb文件(象我的就是mfc80.i386.pdb、mfc80d.i386.pdb、atl80.i386.pdb......),而windows symbols默认安装位置也是C:\WINDOWS\Symbols,把VS安装的Symbols文件覆盖掉的缘故(可能是,后来安装没有测试)。所以windows symbols重新安装的时候我更改了安装位置,安装在C:\symserver,而后在VS的菜单里设置:
      工具-》选项-》调试-》符号里设置
      符号文件的位置里添加//注意顺序
       C:\WINDOWS\Symbols
       C:\symserver
       http://msdl.microsoft.com/download/symbols(没有的符号,将从这个服务器下载)
     将符号从符号服务器缓存到此目录(C)
       C:\symserver
    点确定就好了,下面是正确的载入符号的清单,注意看mfc80ud.dll,msvcr80d.dll载入的符号都是没有去除源信息
    的,载入的位置也是C:\WINDOWS\Symbols,而从http://msdl.microsoft.com/download/symbols服务器下载的
    符号文件,都是去除源信息的。 DLG.exe D:\编程练习\DLG\debug\DLG.exe N/A N/A 已加载符号。 D:\编程练习\DLG\debug\DLG.pdb 1 1.00.0.1 2008-5-5 16:31 00400000-00437000 [2180] DLG.exe: 本机
    ntdll.dll C:\WINDOWS\system32\ntdll.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\ntdll.pdb\1751003260CA42598C0FB326585000ED2\ntdll.pdb 2 5.1.2600.5512 (xpsp.080413-2111) 2008-4-14 10:13 7C920000-7C9B3000 [2180] DLG.exe: 本机
    kernel32.dll C:\WINDOWS\system32\kernel32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\kernel32.pdb\34560E80F5C54175B208848EF863C5BD2\kernel32.pdb 3 5.1.2600.5512 (xpsp.080413-2111) 2008-4-14 10:13 7C800000-7C91E000 [2180] DLG.exe: 本机
    GdiPlus.dll C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.2600.5512_x-ww_dfb54e0c\GdiPlus.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\microsoftwindowsgdiplus-1.0.2600.5512-gdiplus.pdb\C4270CA42AD74D328324A034EC9C39A82\microsoftwindowsgdiplus-1.0.2600.5512-gdiplus.pdb 4 5.1.3102.5512 (xpsp.080413-2105) 2008-4-14 10:11 4AE90000-4B036000 [2180] DLG.exe: 本机
    advapi32.dll C:\WINDOWS\system32\advapi32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\advapi32.pdb\5EFB9BF42CC64024AB64802E467394642\advapi32.pdb 5 5.1.2600.5512 (xpsp.080413-2113) 2008-4-14 10:12 77DA0000-77E49000 [2180] DLG.exe: 本机
    rpcrt4.dll C:\WINDOWS\system32\rpcrt4.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\rpcrt4.pdb\CCD4FE9B704E48B6B8A12F31E112AA6F2\rpcrt4.pdb 6 5.1.2600.5512 (xpsp.080413-2108) 2008-4-14 10:13 77E50000-77EE2000 [2180] DLG.exe: 本机
    secur32.dll C:\WINDOWS\system32\secur32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\secur32.pdb\E8D378740B8E4A46B19CAFCD2D6DDF7D2\secur32.pdb 7 5.1.2600.5512 (xpsp.080413-2113) 2008-4-14 10:13 77FC0000-77FD1000 [2180] DLG.exe: 本机
    gdi32.dll C:\WINDOWS\system32\gdi32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\gdi32.pdb\740F60A99F2A417E96C387400994588D2\gdi32.pdb 8 5.1.2600.5512 (xpsp.080413-2105) 2008-4-14 10:12 77EF0000-77F39000 [2180] DLG.exe: 本机
    user32.dll C:\WINDOWS\system32\user32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\user32.pdb\D18A41B74E7F458CAAAC1847E2D8BF022\user32.pdb 9 5.1.2600.5512 (xpsp.080413-2105) 2008-4-14 10:13 77D10000-77DA0000 [2180] DLG.exe: 本机
    ole32.dll C:\WINDOWS\system32\ole32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\ole32.pdb\ED517599D2C14CF19200861833059C142\ole32.pdb 10 5.1.2600.5512 (xpsp.080413-2108) 2008-4-14 10:13 76990000-76ACD000 [2180] DLG.exe: 本机
    msvcrt.dll C:\WINDOWS\system32\msvcrt.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\msvcrt.pdb\7BCF30D8C91B4F1B85FA4E55896250111\msvcrt.pdb 11 7.0.2600.5512 (xpsp.080413-2111) 2008-4-14 10:15 77BE0000-77C38000 [2180] DLG.exe: 本机
    mfc80ud.dll C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugMFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_257740a4\mfc80ud.dll N/A N/A 已加载符号。 C:\WINDOWS\Symbols\dll\MFC80UD.i386.pdb 12 8.00.50727.762 2006-12-2 16:06 782E0000-78531000 [2180] DLG.exe: 本机
    msvcr80d.dll C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f\msvcr80d.dll N/A N/A 已加载符号。 C:\WINDOWS\Symbols\dll\msvcr80d.i386.pdb 13 8.00.50727.762 2006-12-2 14:50 10200000-10321000 [2180] DLG.exe: 本机
    shlwapi.dll C:\WINDOWS\system32\shlwapi.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\shlwapi.pdb\8519E3403447478884CFFE7F1A91BAE02\shlwapi.pdb 14 6.00.2900.5512 (xpsp.080413-2105) 2008-4-14 10:13 77F40000-77FB6000 [2180] DLG.exe: 本机
    comctl32.dll C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\MicrosoftWindowsCommon-Controls-6.0.2600.5512-comctl32.pdb\505057971C40416FB39FED1D39BED0571\MicrosoftWindowsCommon-Controls-6.0.2600.5512-comctl32.pdb 15 6.0 (xpsp.080413-2105) 2008-4-14 10:11 77180000-77283000 [2180] DLG.exe: 本机
    oleaut32.dll C:\WINDOWS\system32\oleaut32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\oleaut32.pdb\F2A209009B694EFCAD1A6CE9D992EBC12\oleaut32.pdb 16 5.01.2600.5512 2008-4-14 10:13 770F0000-7717B000 [2180] DLG.exe: 本机
    imm32.dll C:\WINDOWS\system32\imm32.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\imm32.pdb\F7A5B5DB13324153B57AAF340C77EA512\imm32.pdb 17 5.1.2600.5512 (xpsp.080413-2105) 2008-4-14 10:13 76300000-7631D000 [2180] DLG.exe: 本机
    lpk.dll C:\WINDOWS\system32\lpk.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\lpk.pdb\4B6570DF2CFF45AAB60E416993385EAC1\lpk.pdb 18 5.1.2600.5512 (xpsp.080413-2105) 2008-4-14 10:12 62C20000-62C29000 [2180] DLG.exe: 本机
    usp10.dll C:\WINDOWS\system32\usp10.dll N/A N/A 已加载符号(去除源信息)。 C:\symserver\usp10.pdb\0F289BC0C9A94139BC1C31EDEDBF52311\usp10.pdb 19 1.0420.2600.5512 (xpsp.080413-2105) 2008-4-14 10:13 73FA0000-7400B000 [2180] DLG.exe: 本机
    mfc80CHS.dll C:\WINDOWS\WinSxS\x86_Microsoft.VC80.MFCLOC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_91481303\mfc80CHS.dll N/A N/A 未使用调试信息生成二进制文件。 21 8.00.50727.762 2006-12-2 16:07 5D360000-5D36A000 [2180] DLG.exe: 本机