zoukankan      html  css  js  c++  java
  • MFC 调试技巧

      The use method of afxDump and TRACE 

     

    #ifdef_DEBUG
    afxDump<<"DumpingmyPerson:\n";
    myPerson->Dump(afxDump);
    afxDump<<"\n";
    #endif

    1)TRACE();/TRACE0();/TRACE1();/TRACE2();/TRACE3();:其用法和C中的printf()函数类似;TRACEn()和TRACE()的区别是前者使用的资源较少,前者中n表示所带参数的个数。使得TRACE可用:Tools-MFCTracer-Enablingtrace。
    2)AfxDump();//其用法和C++中的cout类似;
    3)AfxDump(constCobject*obj);会输出obj的相关信息(属性的值)。
    4)MessageBox();/AfxMessageBox();

    #ifdef_DEBUG
    afxDump<<x;
    #endif
    将结果显示在OutPut,不能在Release状态下。Ctrl+F5似乎无效,F5可以。

    afxDump.SetDepth(1);
    设置深度,如maps,arrays,它只打出有几个可元素,我们用上面的这个函数,它会将所有的内容打出来.
    #ifdef_DEBUG
    chartest[]="0123456789\n";
    afxDump.HexDump("--",(BYTE*)test,11,6);
    #endif
    结果为:
    --303132333435
    --363738390A
    第一个参数,行首的打头字符.
    第二个参数,要打的内容.
    第三个参数,要打的元素个数.
    第四个参数,每行的个数.

    4,TRACE(...),TRACE0,TRACE1,TRACE2,TRACE3也只能在调试时用注意打字符串时有长度限制,包括结束符在内,不超过512个字符.

    5.在Debug状态下
    F9设置断点后,F5到下一个断点,F10下一行,F11进入函数(包括系统函数)内部,Shift+F11出来.
    F5后,Debug菜单有相应的菜单项.
    F5后,View->DebugWindow的子菜单项比较有用.
    Watch查看你指定的变量
    variables显示auot变量,local变量,this的值
    memory显示指定内存地址存储的值
    callstack显示函数调用关系
    registers寄存器的值
    Disabblemble汇编代码

    其实Release下也可调试F5
    Alt+f7工程设置
    c\c++GenerateBrowseinfo选上.
    Debuginfo选Progamedatabaseforeditandcontinue
    LinkGeneratedebuginfo选上
    Linkincrementally选上

    Come from http://blog.csdn.net/banward/archive/2008/09/25/2978680.aspx
  • 相关阅读:
    ISP整体流程介绍
    Demosiac 去马赛克 (CIP)
    ISP-CMOS图像传感器内部结构及工作原理
    数字图像显示原理
    浅析图像到视频
    摄像机gamma校正
    理解 Pix Binning
    人工智能"眼睛"——摄像头
    CMOS 摄像头的Skipping 和 Binning 模式
    android 向服务器发送json数据,以及发送头信息的三种方式
  • 原文地址:https://www.cnblogs.com/likwo/p/1774351.html
Copyright © 2011-2022 走看看