以前自己写过小的C++程序代码,中间设立断点后,运行的时候就会有调试跟踪,但是现在遇到一个稍微大点的程序了,设置了多个断点后,想看一下运行过程,但是运行的时候没有跟踪记录,不进行调试的。这是为什么呢???请告诉我,在一个比较大点的项目中进行C++调试的方法,,,,谢谢。。急!!!!

解决方案 »

  1.   

    有没有用debug编译?
    可以用 TRACE 这个宏方便调试
      

  2.   

    出现这些东西是不是代表可以编译了呢??
    7C94552A   push        0A4h
    7C94552F   push        7C945960h
    7C945534   call        7C92EDC2
    7C945539   xor         ebx,ebx
    7C94553B   mov         dword ptr [ebp-1Ch],ebx
    7C94553E   call        7C93042B
    7C945543   mov         dword ptr [ebp-68h],eax
    7C945546   cmp         byte ptr ds:[7C99C318h],bl
    7C94554C   jne         7C95A84F
    7C945552   and         byte ptr [ebp+0Bh],0F1h
    7C945556   test        byte ptr [ebp+0Bh],10h
    7C94555A   jne         7C945569
    7C94555C   test        dword ptr [ebp+8],0FFF80F00h
    7C945563   jne         7C95A88E
    7C945569   xor         edx,edx
    7C94556B   push        0Ch
    7C94556D   pop         ecx
    7C94556E   xor         eax,eax
    7C945570   lea         edi,[ebp-64h]
    7C945573   rep stos    dword ptr [edi]这些东西都像些汇编一样,好难理解哦怎么也不出现执行到哪一步了?也不返回到程序窗口的请教。
      

  3.   

    看你这些汇编地址,你是跟踪到系统的DLL里面去了。
    注意几个步骤:
    1、选择Debug配置
    2、在代码中添加断点
    3、按F5开始调试
      

  4.   

    TO:cnzdgs 多谢你的指点。但是我的还是不管用啊。。设置断点后,一按F5出现了一个对话框警告:One or more breakpoints cannot be set and have been disabled.Excetion will stop at the beginning of the program.怎么调试也不行的呢,,出现那个警告后,我一按确定了,它自己就转换到出现以下内容的界面:
    0041D9C4   push        ebp
    0041D9C5   mov         ebp,esp
    0041D9C7   push        0FFh
    0041D9C9   push        460950h
    0041D9CE   push        424C48h
    0041D9D3   mov         eax,fs:[00000000]
    0041D9D9   push        eax
    0041D9DA   mov         dword ptr fs:[0],esp
    0041D9E1   sub         esp,58h
    0041D9E4   push        ebx
    0041D9E5   push        esi
    0041D9E6   push        edi
    0041D9E7   mov         dword ptr [ebp-18h],esp
    0041D9EA   call        dword ptr ds:[45927Ch]
    0041D9F0   xor         edx,edx
    0041D9F2   mov         dl,ah
    0041D9F4   mov         dword ptr ds:[474284h],edx
    0041D9FA   mov         ecx,eax
    0041D9FC   and         ecx,0FFh
    0041DA02   mov         dword ptr ds:[474280h],ecx
    0041DA08   shl         ecx,8
    0041DA0B   add         ecx,edx
    还有好多。请再指点一下吧。。多谢啦。。
      

  5.   

    你是在Release状态下调试的吧,改为Debug
      

  6.   

    你用的VC是哪个版本?是否修改过编译或连接的设置?另外看一下Debug目录中是否生成了.pdb文件。
      

  7.   

    恩。我看了,用的确实是Release状态下,在调试配置那里有个Release还有个Debug,我想改成Debug,可是它默认就是Release,改不了。我用的VC6.0版本。没有Debug目录。有Release呵呵~~~
    请继续指点自己好笨哦。呵呵。。那个配置改不了
      

  8.   

    无意中改成功了,改成Debug了,但是本来程序没错的。改成Debug后,编译的时候出错。但是生成的时候就又没错了。呵呵。。不过多谢各位的帮忙了,现在好像是可以跟踪调试了。。等我调试好了,一定感谢大家啊
      

  9.   

    调试的时候为什么总出现这些东西呢:
    Loaded 'ntdll.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\user32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\gdi32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\comdlg32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\shlwapi.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\secur32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\comctl32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\shell32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\winspool.drv', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\oledlg.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\ole32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\olepro32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\oleaut32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\wsock32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\ws2_32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\ws2help.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\odbc32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\wininet.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\crypt32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msasn1.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\imm32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\lpk.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\usp10.dll', no matching symbolic information found.
    我对应我电脑里看了,这些.DLL都存在的呀不知道为什么??????
      

  10.   

    调试过程中加载的每个dll,调试器都会自动查找对应的符号文件,以便调试时可以跟踪到dll里面,如果找不到就会显示这样的提示,对于系统中的dll是没有符号文件的(实际上也不需要调试系统的dll,如果需要你可以安装Debug版的操作系统)。