程序调试
文章平均质量分 62
淡淡的琉璃
这个作者很懒,什么都没留下…
展开
-
vc下dll调试
http://blog.csdn.net/coding_hello/archive/2008/11/24/3364111.aspx 很多初学DLL和COM编程的人都为DLL的调试方法发愁。我结合自己学习COM的体验,总结DLL程序的调试如下。 DLL是一个不可运行的程序,它必须有其它程序的加载才可运行。故要调试DLL程序,需要一个测试程序。根据测试程序的不同,我将DL转载 2012-09-10 15:29:50 · 306 阅读 · 0 评论 -
vs2010中臃肿的ipch和sdf文件
使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量,可惜毕竟硬盘还没有廉价到免费的地步。 那么,该怎么解决呢?其实可以关闭它。方法: Tools->Options->Text Editor->C/C++->Advanced-转载 2012-11-19 11:06:18 · 555 阅读 · 0 评论 -
Windows中主流的调试器介绍
调试器,顾名思义,就是用于调试的工具。为什么要调试呢?这得从一条虫子(bug)说起。江湖中传说还是在第一代真空管电子计算机时代,有一次研究人员发现计算机的行为不正常。于是他们就开始检查每个环节想找到原因,最终他们在机器里找到了条虫子(bug)从而解决了问题。于是后来便把发现并解决程序中与预期不符的行为称之为捉虫或除虫,也就bug加个De-前缀,即Debug。 火星人开发的程序是不是绝对没有转载 2012-09-10 15:34:33 · 737 阅读 · 0 评论 -
运行时间的观察--watch窗口的技巧续
微软精心打造的VC调试器确实非常方便,再来看个watch窗口的小技巧:用作计时器 有时候可能想要知道个函数或者一段代码运行需要的粗略时间。一般是假如一些计时的处理,比如函数开始时调用GetTickCount()记录开始时间,完了在调用一边获得结束时间,一减就出来~~ 不复杂,但是确实需要动代码。实际上调试器中的watch窗口就能帮你简单的完成这个功能。很简单的代码,main函转载 2012-09-10 15:33:51 · 361 阅读 · 0 评论 -
内存断点
经常有人问我关于内存断点的问题,刚才看帖又看到一个哥们问起这事。干脆就写一篇简单教程吧。 翻出了一个快排的程序。初始化了一个待排序数组,这时候如果我想看看arr[0]这个内存单元的值是何时开始变化的,那么就可以在这个内存地址直接下数据断点。打开Edit-->Breakpoints菜单,出现Breakpoints窗口,选Data叶面。内存断点需要在调试过程中使用,这时候能直接看到a转载 2012-09-10 15:34:10 · 273 阅读 · 0 评论 -
Windows中主流的调试器介绍
用Vc6编写的程序有时候Debug版本好好的,Release版本运行就出错,很多人都遇到过这种问题。前几天又有人问起,于是找了点时间写下这篇东西。总结了一部分Debug版本和Release版本的区别,都是些个人理解,欢迎交流。 Debug版本和Release版本之所以有区别,就是在于各自的编译项不同。不同的编译项组合产生不同的代码,Debug版本的编译项屏蔽了编译器的优化,增加了转载 2012-09-10 15:35:54 · 577 阅读 · 0 评论 -
变量的观察--watch窗口的技巧
接着上篇,写一下VC6的watch窗口的一些小技巧,对于调试过程是非常有帮助的。VC6年纪已经很大了,微软好像也不再支持,但是还是有很多人在用。我本人是非常喜欢它的小巧(相对vs2003,2005),占资源少,即使这样它的调试功能仍然超级强,真是不错。 好,废话到此结束,下面贴代码来说明:#include stdio.h>#include windows.h>转载 2012-09-10 15:32:37 · 2310 阅读 · 0 评论 -
远程调试
VC开发环境之所以提供远程调试的能力,是因为有些情况下单机调试会让你崩溃掉。。。比如,调试GUI程序的WM_PAINT消息,因为要单步调试,所以调试器会对界面的重绘产生副作用(Heisenberg不确定性原理)。当然还有些别的情况也适用,比如程序在测试环境运行的好好的,但是在客户那行为总是异常,这时候如果可以TCP远程连接上去维护的话,就能通过远程调试的特性在出现状况的系统环境中排错~转载 2012-09-10 15:31:22 · 320 阅读 · 0 评论 -
远程调试续--DLL篇
在上一篇文章中提到exe的远程调试后,有人问怎么远程调试动态库,所以再发个远程调试的续篇补充一下。 基本流程还是一样的,只不过调试动态库的话,除了需要动态库本身外,还需要调用该动态库的执行程序。这里假设要调试的动态库为TestDLL.dll,其中导出一个函数int Add(int a, int b);在可执行程序TestCSDN.exe中会调用TestDll中的Add函数。转载 2012-09-10 15:30:38 · 409 阅读 · 0 评论 -
CStdioFile类
参数内容:第一个参数为路径+文件名,最后一个为错误出现的结构.现在解释下第二个参数CFile::modeCreate Directs the constructor to create a new file. If the file exists already, it is truncated to 0 length.指定构造器创建一个新的文件,如果文件已经存转载 2013-05-27 15:13:39 · 791 阅读 · 0 评论