本人有一个别人写的在对话框程序中跟踪输出类。能很方便输出所需信息。使用也很简单,首先在对话框上添加一个Edit,然后声明一个从该Edit和ostream派生出来的变量,最后把cout重定向到该变量上,以后就可以象下面一样输出信息,并实时显示在Edit中
cout<<"current x="<<x<<endl;(x 可以是int、char,CString等而不用先转换成字符串后输出)
现在本人的程序运行久了经常会没有响应,后来发现是该输出类所导致的,不知那位高手有更好的也很方便的跟踪输出,请发给小弟,[email protected],一定加分。不够另外开贴。
谢谢!

解决方案 »

  1.   

    to verybigbug() 
    它能结合在程序中作为程序的一部分吗?
      

  2.   

    源代码级调试器(好像在9X下容易出问题,在NT下很好用)。
    功能就是在程序中设置断点(不是在VC中设置,在BugTrapper中设置),当程序运行到断点时就自动将断点处的变量显示出来,无需干预就继续运行。这样你可以看一下显示的结果就知道发生什么事情了。作为调试Bug的工具很好的。
    就是不支持自定义。你自己用一下就知道了,外面有一个Free7Days的版本(8M)。
    我自己写了一个类似的功能的程序,因为没办法得到PDB的格式,只能简单支持函数的监视了,而且必须自己写Plugin函数,比较麻烦。
      

  3.   

    我只考虑过2种方法:
    1. 写一个类似ostream的类x,像cout一样的的工作,在x内部将输入导出合适的地方。
    2.使用debugview.exe+api: OutputDebugString(const char*)
      

  4.   

    you can try DebugOutputString() API, its output can be shown in Dbgview.exe
      

  5.   

    to all
    是这样的,我并不是只在调试时用它,而是把它结合到程序中,使用户能很方便看到发生过什么变化。就像VC编译器一样,把所有的警告、错误都在下面输出来,使用户能实时看到当前在编译哪个文件,哪个文件出错。
      

  6.   

    可到www.codeproject.com找个log方面的界面,但不见的有debugview好。
      

  7.   

    建立一个控制台,然后重定向一下,用printf输出。
    我没试过这个。
      

  8.   

    另外你说你的程序运行久了会没有响应,我觉得可能时Edit里的信息太多了。
      

  9.   

    to NowCan(能量、激情、雨水、彩虹——雷雨云) 
    我并不是仅仅为了调试,是为了在对话框显示当前的所有状态信息。用printf还要格式化字符串,很麻烦的。
    另外,Edit的内容不多,多了也会自动清除。