调试程序
文章平均质量分 51
windcsn
这个作者很懒,什么都没留下…
展开
-
怎么样使用VC的TRACE宏
TRACE宏对于VC下程序调试来说是很有用的东西,有着类似printf的功能;该宏仅仅在程序的DEBUG版本中出现,当RELEASE的时候该宏就完全消息了,从而帮助你调式也在RELEASE的时候减少代码量。使用非常简单,格式如下:TRACE("DDDDDDDDDDD");TRACE("wewe%d",333);同样还存在TRACE0,TRACE1,TRACE2。。。分别对应0,1,2。。个参数TR原创 2005-07-29 13:33:00 · 6293 阅读 · 0 评论 -
使用OutputDebugString帮助调试
前面我已经介绍了使用TRACE来帮助我们调试,但使用TRACE有一个限制,只能在将程序DEBUG编译状态下才能使用,下面我们介绍OutputDebugString函数,通过它,可以在在DEBUG或RELEASE情况也可以输出调试日志,从而对那些要求编译为RELEASE的程序可以方便的调试。OutputDebugString的函数原型:void OutputDebugString( LPCTSTR原创 2005-08-12 09:45:00 · 3975 阅读 · 0 评论 -
多线程WIN32程序如何检查死锁(一)——死锁概述
数据毁坏或一个死锁几乎是一个多线程应用中发生的最坏的问题,它具有非常恶毒的和敏感的形式但相当困难重新或者被跟踪。由于这种原因,强烈推荐你在这些情况发生之前分析你的多线程应用程序可能的死锁条件并检查和删除这些死锁。非常简单一个死锁两个或多个线程彼此等待对方释放共享资源而不释放它占有的资源。因为所有参与死锁的线程被挂起并且因此而不能释放它们占有的资源,没有线程可以继续运行,并且整个应用程序(或者更坏的原创 2005-09-05 16:31:00 · 2420 阅读 · 0 评论 -
多线程WIN32程序如何检查死锁(二)-检查死锁的策略
多线程应用程序中检查死锁的方法 WIN32 API的好的特性就是能够让你所有可能引起死锁的资源。在上面的WINDOWS3.1的例子中,硬盘驱动器制造商,应用程序员,WINDOWS开发人员都不可能预测到死锁,因为这个死锁包含了几个软件部分,而且软件内部的功能对其他部分的作者来说是未知的,但如果把他们放在一起,他们就能够让系统挂起。 然而在WIN32 API中,所有的同步对象只能在本地工作,也就是说,原创 2005-09-12 10:14:00 · 2043 阅读 · 0 评论 -
多线程WIN32程序如何检查死锁(三)-使用Petri网络来表示多线程应用程序
根据1993版的《计算机百科全数》,Carl Adam Petri一个在德国波恩为Gesellschaft fuer Mathematik und Datenverarbeitung工作,我花了很长时间猜测为什么他的理论并没有引起当时学术和工商界的本来应得的注意。Petri网络早在19世纪70年代就已经深入的研究过,以我浅见,他们提供了一个分析和研究并发系统优秀的架构,对于Petri网络的最好的和原创 2005-09-20 14:00:00 · 2846 阅读 · 0 评论 -
关于C结构体bit field的跨平台的教训
http://www.cppblog.com/windcsn/archive/2006/09/08/bitfield.html原创 2006-09-08 14:25:00 · 1721 阅读 · 0 评论