VC6.0 Release 如何调试

合集下载

vc++60中开发驱动程序的配置方法

vc++60中开发驱动程序的配置方法

VC++6.0中开发驱动程序的配置方法注意:如果你的电脑中没有安装VC++6.0等软件的话,请先安装 VC++ 6.0 ,再安装DDK,最后安装DriverStudio。

安装顺序一定不要搞错哟。

一、首先创建一个你的驱动工程文件目录。

这个目录下用来放置你的各个驱动工程文件夹。

(比如我在D盘创建了一个D:\PCI9052DVP\PCI9052DRV文件夹作为我的驱动工程文件目录)。

二、然后添加1个用户环境变量,DDKROOT,他的值应该是你所安装DDK的根目录。

(比如在安装DDK时安装到了E:\WINDDK\3790.1830,那么 DDKROOT的值应该为E:\WINDDK\3790.1830)。

添加用户环境变量后电脑需要重启。

如果没有这个用户环境变量,将不会编译任何一个文件。

三、编写一个MakeDrvr.bat批处理文件,如下(可直接copy,不用修改)。

MakeDrvr.bat应该放在工程目录下面D:\PCI9052DVP\PCI9052DRV。

@echo offif "%1"=="" goto usageif "%3"=="" goto usageif not exist %1\bin\setenv.bat goto usagecall %1\bin\setenv %1 %4%2cd %3build -b -w %5 %6 %7 %8 %9goto exit:usageecho usage MakeDrvr DDK_dir Driver_Drive Driver_Dir free/checked [build_options]echo eg MakeDrvr %%DDKROOT%% F: %%WDMWorkshop%% free -cef:exit四、建立一个Makefile工程下面我将要建立一个PCI9052DRV的工程。

vc6调试技巧

vc6调试技巧

vc6调试技巧难怪很多前辈说调试是⼀个程序员最基本的技能,其重要性甚⾄超过学习⼀门语⾔。

不会调试的程序员就意味着他即使会⼀门语⾔,却不能编制出任何好的软件。

我以前接触的程序⼤多是有⽐较成形的思路和⽅法,调试起来出的问题都⽐较⼩,最近这个是我⾃⼰慢慢摸索调试,接触了很多新的调试⽅法,并查了很多前辈的总结,受益匪浅,总结以前的和新的收获如下:VC调试篇设置为了调试⼀个程序,⾸先必须使程序中包含调试信息。

⼀般情况下,⼀个从AppWizard创建的⼯程中包含的Debug Configuration⾃动包含调试信息,但是是不是Debug版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的Configuration中增加调试信息,包括Release版本。

为了增加调试信息,可以按照下述步骤进⾏:打开Project settings对话框(可以通过快捷键ALT+F7打开,也可以通过IDE菜单Project/Settings打开)选择C/C++页,Category中选择general ,则出现⼀个Debug Info下拉列表框,可供选择的调试信息⽅式包括:选择Link页,选中复选框"Generate Debug Info",这个选项将使连接器把调试信息写进可执⾏⽂件和DLL如果C/C++页中设置了Program Database以上的选项,则Link incrementally可以选择。

选中这个选项,将使程序可以在上⼀次编译的基础上被编译(即增量编译),⽽不必每次都从头开始编译。

调试⽅法:1、使⽤ Assert(原则:尽量简单)assert只在debug下⽣效,release下不会被编译。

2、防御性的编程3、使⽤Trace4、⽤GetLastError来检测返回值,通过得到错误代码来分析错误原因5、把错误信息记录到⽂件中位置断点(Location Breakpoint)⼤家最常⽤的断点是普通的位置断点,在源程序的某⼀⾏按F9就设置了⼀个位置断点。

vc 6.0的使用技巧

vc 6.0的使用技巧

介绍VC6.0的18个实用小技巧VC 用的太熟的一个后果是看到有人用UltraEdit写VC程序时觉得不可理解。

另一个后遗症是,我很喜欢用快捷键,熟悉了VC的这套快捷键后,用其他软件的时候,如果快捷键设置和VC的习惯设置冲突就觉得很难受。

比如说SoftIce,很久以前就开始用,至今还没习惯。

下面说说我在使用VC IDE时经常用到的一些快捷键。

CTRL+TAB:在IDE打开的文件间切换。

我喜欢在IDE里同时打开很多文件,用CTRL+TAB来回切换,浏览代码很方便。

LEO的习惯跟我相反,他看完一个文件后会顺手把文件关掉。

有一次他看到我的IDE里居然开了几十个文件,惊讶坏了,呵呵。

CTRL+SHIFT+SPACE:快速查看函数声明。

有了这个以后查MSDN的次数大大减少。

CTRL+]:快速定位{}。

看代码时常用,另外用来检查大括号是否配对很方便。

相比之下page up/page down用的比较少,因为老是觉得这个定位代码不够精确。

CTRL+SHFT+]:选中大括号之间的代码。

代码段拷贝的时候常用。

在一次移植一段C 程序到C++程序时学会的。

F12:快速定位到宏/变量/函数的定义。

VC6第一次用要先生成BROWSE INFO,速度比较慢,VS2003可以直接定位。

ALT+F8:格式化代码。

常和CTRL+A或者CTRL+SHIFT+]连用。

我看到格式不整齐的代码时会很难受。

CTRL+X, CTRL+C, CTRL+V:有时候跟别人开玩笑说,其实编程挺简单的,会CTRL+C/CTRL+V就行。

CTRL+Z, CTRL+Y:UNDO, REDO。

修改代码时常用。

CTRL+F2, F2:设置、查看书签。

在VS2003中一度习惯了CTRL+K, K/CTRL+K/N, CTRL+K/P的组合,后来由于来回在VC6、VS2003之间切换,还是觉得统一用CTRL+F2, F2比较好。

ALT+-->, ALT+<--:光标移到下个单词。

VC程序调试.

VC程序调试.

VC程序调试VC程序调试调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。

不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。

一、VC程序调试方法 VC的调试功能:首先,再次强调要用Go命令运行一个将要调试的程序;如果要中止调试状态下的运行程序可以点击Stop Debugging命令,还可以通过Break选项以可恢复方式中断调试程序的运行流程(用Restart选项可以重新开始运行程序);Step Into选项表示每次只执行一行语句(单步执行),但如果当前代码是调用一个函数,那么Step Into表示进入该函数,全部函数语句执行完后返回,而Step Over则是跳出这个函数;Step To Cursor 选项表示程序将执行到光标所在的可执行语句行上;在调试多线程程序时,可以在线程函数或主应用程序线程中设置断点,还可以用Break选项结束线程后用Threads选项查看运行线程列表,也可以选择悬挂和恢复每个线程;在设置断点后,在VC "查看"菜单的"调试窗口"中可以查看变量、内存、调用堆栈、寄存器以及反汇编语句。

在程序中设置断点的方法是,点击要设置的代码行并点击设置代码的工具栏按钮,会出现在代码行最左边的一个小黑点即是断点标志,这时再选Go 程序会在执行到端点处停下来,如果要继续执行可以再选Go。

通过选择VC"工具"菜单下的"源浏览器"可以生成一个.BSC文件,使用浏览器可以从中发现多种信息:程序中任何一个变量、函数、类或宏在何处定义及引用;可以列出所有声明的函数类、变量、宏;可以发现调用一个指定函数的所有函数;可以找到一个指定类的派生来源或者它派生出哪些类。

在使用微软程序开发库MSDN时,我们会发现其中的VC示例经常采用看似多余的ASSERT语句,其作用就是使程序具有"维护"性。

VC6.0调试方法

VC6.0调试方法

VC6.0调试⽅法
1.打开你要调试代码的⼯作空间。

2.按快捷键F5或点击以下图⽚上标记的图标进⼊调试模式。

3.打开调试⼯具条,⼀般情况下当你按F5键后会⾃动弹出,如果没有弹出的话,右击⼯具栏空⽩处,会弹出下图,选中调试,就会出现调试⼯具条。

4.接下来,在监视窗⼝中添加你要监视数据变化的变量。

5.按F11逐语句的调试代码,如果某⼀语句是⼀函数,你不希望进⼊该函数时,F10逐过程来查看,在代码的调试过程中,通过监视窗⼝查看变量值的变化,从⽽确定代码是否有问题。

6.如果希望跳出某⼀函数时,按快捷键Shift+F11,或者直接点击调试⼯具条上的按钮就可以跳出该函数了。

7.如果只是希望调试某⼀部分代码的话,可以设置断点来调试,调试⽅法如上,只是在要调试的代码之间⽤断点来分开。

设置断点时,光标放在你要设置断点的那⾏,按F9或点击编译微型条上⾯的类似⼿状的按钮即可。

Visual C++ 6.0环境配置

Visual C++ 6.0环境配置

Visual C++ 6.0环境配置Kasi, Man Union Team2004-12-4 初稿Visual C++ 6.0环境配置 (1)1. 概述 (2)2. 环境设置(Environment Settings) (2)2.1 配置Tab键所占的字宽 (2)2.2 配置代码颜色 (2)2.3 设置前后的效果对比 (3)3. 工作区域设置(Workspace Settings) (4)3.1 调整工具栏(Tool Bar) (4)3.2 调整Workspace的位置 (5)3.3 关闭Output窗体 (5)3.4 设置前后的效果对比 (5)4. 工程设置(Project Settings) (7)4.1 设置Precompiled Headers (7)4.2 设置编译后的文件路径 (7)5. Console-base的调试环境 (8)5.1 设置Console-base (8)5.2 让Console与Window共存 (10)6. 快捷键(Shortcut-key) (12)6.1 文件操作 (12)6.2 代码间的快速跳转 (12)6.3 编译.运行.调试(debugging) (13)6.4 各类常用的window (13)7. 总结 (13)1. 概述一个好的环境,能让你的工作事半功倍。

下面是我个人对VC++6.0的环境配置,仅供抛砖引玉之用。

2. 环境设置(Environment Settings)此设置针对与所有工程有效。

打开目录2.1 配置Tab键所占的字宽一般所来,Tab在各个程序中字宽为8,而VC默认把其设为4。

我们将其改回8,好处是,当将代码从VC复制到其它程序(如notepad)时,代码不会变乱(不对齐)。

如图:2.2 配置代码颜色改动代码的颜色,给我们看代码带来方便。

个人的具体配置,可依据个人的喜好。

2.3 设置前后的效果对比代码显示的效果Tab字宽对“从VC中复制出来的代码”的影响3. 工作区域设置(Workspace Settings)我个人的感觉,写代码,就要让代码的可视区域最大,尽量释放代码的显示空间。

VC++6.0调试方法大全

VC++6.0调试方法大全

一、调试基础调试快捷键F5:开始调试Shift+F5: 停止调试F10:调试到下一句,这里是单步跟踪F11:调试到下一句,跟进函数内部Shift+F11: 从当前函数中跳出Ctrl+F10: 调试到光标所在位置F9:设置(取消)断点Alt+F9: 高级断点设置跟踪调试1、尽量使用快捷键时行调试2、观察调试信息3、高级中断设置异常调试重试->取消->调试函数堆栈,用variables或者call stack 窗口Release调试1、经常测试你的Debug和Release版本2、不要移除调试代码,如用ASSERT, TRACE等。

3、初始化变量,特别是全局变量,malloc的内存,new的内存4、当你移除某个资源时,确保你移除了所有跟这个资源相关的申明(主要是在resouce.h文中)5、使用3或者4级的警告级编译你的代码,并确保没有警告,project->setting->c/c++->warninglevel(中文版是项目->属性->C/C++->常规->警告等级)6、_debug改成NDEBUG进行调试,project->setting->C/C++->Preprocessordefinitions(中文版是项目->属性->C/C++->预处理器->预处理定义)(这里是debug和Release编译的重要不同之一)7、在Release中调试源代码,project->setting->C/C++->debug info选择programDataBase (中文版是项目->属性->C/C++->常规->调试信息格式->用于“编辑并继续”的程序数据库),project ->setting->link选上Generate debug info(中文版是项目->属性->链接器->调试->生成调试信息)8、走读代码,特别关注堆栈和指针二、TRACE宏当选择了Debug目标,并且afxTraceEnabled变量被置为TRUE时,TRACE宏也就随之被激活了。

vc6.0工程的setting选项

vc6.0工程的setting选项

在这个对话框 中,左上方的下拉列表框用于选择一种工程配置,包括有Win32 Debug、Win32 Release和All Configurations(指前两种配置一起),某些选项在不同的工程配置中有不同的缺省值。左边的树形视图给出了当前工程所有的文件及分类情况。如果我们把工程“Schedule”置为高亮显示(正如图9-1那样),对话框的右边就会出现总共十个选项卡,其中列出了与工程有关的各种选项,不少选项卡中有一个Reset按钮,按下它后可以把选项卡内的各项设置恢复到生成工程时的初始值。如果我们在树形视图中选择一个文件类或一个文件,那么对话框右边的选项卡会自动减少到一个或两个,其中列出的都是与选中的文件类或文件有关的选项。下面我们就以Win32 Debug为例来看看与工程有关的十个选项卡各自的功能与含义,与文件有关的选项卡则请大家自己琢磨一下。
Resources
Resources选项卡控制着VC6的资源编译器。如图9-5所示,我们可以指定编译后生成的资源文件的路径,资源的语言类型,以及额外的资源包含目录。
MIDL
这个选项卡与COM(组件对象模型)编程有关,我们不讨论它。
Browse Info
在Customize类别中,从上到下六个选项的含义分别为:是否禁止使用Microsoft对C++的扩 展;是否允许函数级别的连接;是否消除重复的字符串;是否允许进行最小化的重建;是否允许递增编译方式;是否允许编译器在开始运行时向Output窗口中 输出自己的版本信息。其中第二、三两项为灰色是因为它们与即编即调功能不兼容,如果在General类别中选择生成其它类型的调试信息,那么就可以更改这 两个选项。
ቤተ መጻሕፍቲ ባይዱ Debug
Debug选项卡中是一些与调试有关的选项,如图9-2所示,由于选项比较多,它们被分成了几个类,我们可以从Category中选择不同的类别,选项卡就会切换显示出相应的选项,后面的C/C++和Link选项卡也有这种情况。

断点调试

断点调试

注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下QuickWatch、调用队列跟踪功能仍然有效,和Debug版一样。
3、Release和Debug有什么不同
Release版称为发行版,Debug版称为调试版。
②: Ctrl+Shift+F5
6. 关于单步调试
前提条件---à调试阶段
①:Debug--àStep Into (F11)
逐语句。(例如,遇到函数调用时会进入被调函数)
②:Debug--àStep Over (F10)
2.关于断点调试
F9:设置或去除断点。如果当前行未设置断点,按F9可在当前行设置断点,如果当前行已设置断点,按F9则为去除断点设置。
Alt+F9:调出断点设置窗口
在这个窗口里可以设置断点,去除所有已经设置的断点或者单个断点,也可以转到已设置的断点处,通过按钮Edit Code,可以设置需要被计算的表达式,可以设置,监视(Watch)数组或结构体元素的个数,可以在窗口过程函数中设置断点,可以为任何一个想要监视(Watch)的消息(Message)设置一个断点。
①:Debug--àQuickWatch (Shift+F9)
调出QuickWatch对话框,添加要监视查看(watch)的表达式(expression),然后
Add Watch,程序之后就会监视该表达式
②:View--àDebug Windows---àWatch (Alt+3)
在工作区的FileView视图中选中对应的项目,单击右键弹出菜单,选择【Clean(selection only)】菜单即可。

vc6.0安装教程与调试技巧

vc6.0安装教程与调试技巧

vc6.0的安装过程1.首先解压安装文件的压缩包2.然后再选择安装的版本,VC6CN 表示的是中文版,VC6EN表示英文版。

3.打开VC6CN文件夹,其中有如下图标,鼠标双击。

4.如下图所示就是我们安装的第一步,单击下一步。

5.选择“接受协议”后单击下一步。

6.本软件属于破解版,故无需输入产品ID号码,直接单击下一步。

7.选择“安装visual c++6.0中文企业版(I)”,这就是我们要安装的程序,单击下一步。

8.单击下一步。

9.如下界面,单击“继续”,开始安装软件。

10.点击“确定”。

11.选择“是”,继续安装。

12.选择“typical”继续安装13.选择“ok”。

14.选择“确定”15.选择“确定”16.取消“安装MSDN”前面的勾号,选择“退出”。

17.选择“是”,取消MSDN的安装。

18.程序安装完毕,再电脑的“开始菜单”中,选择“所有程序”,在“Microsoft Visual C++ 6.0”目录中选择“Microsoft Visual C++ 6.0”就可以运行程序了。

也可以将这个图标发送到桌面快捷方式,这样就可以直接在桌面上运行程序。

调试技巧调试程序可以帮助的了解程序是怎样运行的。

1、如何快速地规范代码缩进格式选中所需要规范的代码,按shift+F82、如何在Release状态下进行调试Project->Setting…->Project Settings对话框,选择Release状态。

“C/C++”标签页中的Category选General,Optimizations选Disable(Debug),Debug info选Program Database。

在“Link”标签页中选中Generate debug info复选框。

注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下QuickWatch、调用队列跟踪功能仍然有效,和Debug版一样。

VC++6.0使用方法

VC++6.0使用方法

一、Visual C++ 6.0概述Visual C++6.0是微软公司推出的目前使用极为广泛的基于Windows平台的可视化集成开发环境,它和Visual Basic、Visual Foxpro、Visual J++等其它软件构成了Visual Studio(又名Developer Studio)程序设计软件包。

Developer Studio是一个通用的应用程序集成开发环境,包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。

使用Visual Studio,可以完成创建、调试、修改应用程序等的各种操作。

VC++6.0提供面向对象技术的支持,它能够帮助使用MFC库的用户自动生成一个具有图形界面的应用程序框架。

用户只需在该框架的适当部分添加、扩充代码就可以得到一个满意的应用程序。

VC++6.0除了包含文本编辑器,C/C++混合编译器,连接器和调试器外,还提供了功能强大的资源编辑器和图形编辑器,利用“所见即所得”的方式完成程序界面的设计,大大减轻程序设计的劳动强度,提高程序设计的效率。

VC++的功能强大,用途广泛,不仅可以编写普通的应用程序,还能很好地进行系统软件设计及通信软件的开发。

二、使用Visual C++ 6.0建立C语言应用程序利用VC++6.0提供的一种控制台操作方式,可以建立C语言应用程序,Win32控制台程序(Win32 Console Application)是一类Windows程序,它不使用复杂的图形用户界面,程序与用户交互是通过一个标准的正文窗口,下面我们将对使用Visual C++ 6.0编写简单的C语言应用程序作一个初步的介绍。

1.安装和启动运行Visual Studio软件中的setup.exe程序,选择安装Visual C++ 6.0,然后按照安装程序的指导完成安装过程。

安装完成后,在开始菜单的程序选单中有Microsoft Visual Studio 6.0图标,选择其中的Microsoft Visual C++ 6.0即可运行(也可在Window桌面上建立一个快捷方式,以后双击即可运行)。

vc++6.0-调试详细教程(17种方法)

vc++6.0-调试详细教程(17种方法)

vc++6.0 调试详细教程Step intoStep overStep outRun to cursorWatchVariablesRegistersMemoryStop DebugCall stackDisassemblyRestart Debugger2、调试的一般过程调试,就是在程序的运行过程的某一阶段观测程序的状态。

在一般情况下程序是连续运行的,所以我们必须使程序在某一地点停下来。

我们所做的第一项工作就是设立断点;其次再运行程序;当程序在设立断点处停下来时,利用各种工具观察程序的状态。

程序在断点停下来后,有时我们需要按我们的要求控制程序的运行,以进一步观测程序的流向。

下面我们依次来介绍断点的设置,如何控制程序的运行以及各种观察工具的利用。

3、设置断点在VC中,可以设置多种类型的断点,根据断点起作用的方式把这些断点分为三类:1、与位置有关的断点;2、与逻辑条件有关的断点3、与WINDOWS消息有关的断点。

主要介绍前面两种断点。

4、设置位置断点最简单的是设置一般位置断点:¡把光标移到你要设断点的位置,当然这一行必须包含一条有效语句的;¡然后按工具条上的add/remove breakpoint 按钮或按快捷键F9。

将会在屏幕上看到在这一行的左边出现一个红色的圆点表示这里设立了一个断点5、设置位置断点-图示6、设置逻辑断点有的时候可能不需要程序每次运行到这儿都停下来,而是在满足一定条件的情况下才停下来,这时就需要设置一种与位置有关的逻辑断点。

从EDIT 菜单中选中Breakpoints命令,这时Breakpoints对话框将会出现在屏幕上。

选中Breakpoint对话框中的Location标签,使Location页面弹出。

如下页图所示。

7、8、设置逻辑断点单击上页Condition按钮,弹出Breakpoint Condition对话框,在expression_r编辑框中写出你的逻辑表达式,最后按OK返回。

VC6.0 IDE的使用和程序调试技巧

VC6.0 IDE的使用和程序调试技巧

项目工作区窗口

ClassView页
FileView页 ResourceView页
FileView页
ClassView页
File->New->Proj32 Application
基于WINDOWS平台的32位开发环境开发应用程序,SDK程序。 入口函数为WinMain
文件类型 Active Server Page Bitmap File C/C++ Header File HTML Page Resource Script Resource Template
Visual C++6.0 可以创建的文件类型 说明 文件类型 网页制作 Binary File 创建位图文件 C++ Source File 创建 C/C++头文件 Cursor File 创建 HTML 文件 Icon File 创建资源脚本文件 Text File 创建资源模板文件 SQL Script File
6:使用单步执行到程序结束


设置断点以后,调试运行程序时,程序 开始执行,并且运行到断点处暂停下来, 此时我们有机会观察程序的运行情况, 并且诊断程序目前的状态是否如我们所 预期的那样。 不过我们先不着急观察程序的状态,而 是来看看如何控制程序的运行,以便在 我们需要的时候让程序暂停下来,并且 以我们需要的方式走走停停!
方法是使用单步执行手段stepover让程序向前走一步停止调试停止调试并重新启动调试单步执行当前位置对比调试运行时出现的调试菜单debug和调试工具栏根据图标查找对应项设置断点调试运行程序此时程序暂停在断点处等待选择debug菜单找到最后一项quickwatch并点击输入想要观察的变量变量名变量的值点击addwatch点击addwatch看到如下画点击单步执行按钮或者菜单程序则向前单独运行一个步骤每向前执行一步就会暂停下来这样我们就有充足的时间观察所关心的变量名称按下f5键可以让程序从当前位置向前执行直到遇见下一个断点或者程序结束下面是赠送的ppt模板不需要朋友可以下载后编辑删除

VC++6.0环境下调试c语言代码的方法和步骤

VC++6.0环境下调试c语言代码的方法和步骤

VC++6.0环境下调试c语言代码的方法和步骤VC++6.0环境下调试c语言代码的方法和步骤下文将为大家带来VC++6.0环境下调试c语言代码的方法和步骤,欢迎参考学习!更多内容请关注店铺!1.C语言程序四步开发步骤(1)编辑。

可以用任何一种编辑软件将在纸上编写好的C语言程序输入计算机,并将C语言源程序文件*.c以纯文本文件形式保存在计算机的磁盘上(不能设置字体、字号等)。

(2)编译。

编译过程使用C语言编译程序将编辑好的源程序文件“*.c”,翻译成二进制目标代码文件“*.obj”。

编译程序对源程序逐句检查语法错误发现错误后,不仅会显示错误的位置(行号),还会告知错误类型信息。

我们需要再次回到编辑软件修改源程序的错误,然后,再进行编译,直至排除所有语法和语义错误。

(3)连接。

程序编译后产生的目标文件是可重定位的程序模块,不能直接运行。

连接将编译生成的各个目标程序模块和系统或第三方提供的库函数“*.lib”连接在一起,生成可以脱离开发环境、直接在操作系统下运行的可执行文件“*.exe”。

(4)运行程序。

如果经过测试,运行可执行文件达到预期设计目的,这个C语言程序的开发工作便到此完成了。

如果运行出错,这说明程序处理的逻辑存在问题,需要再次回到编辑环境针对程序出现的逻辑错误进一步检查、修改源程序,重复编辑→编译→连接→运行的过程,直到取得预期结果为止。

2.Visual C++ 6.0 开发环境介绍Visual C++ 6.0(以后简称 VC)是 Microsoft 公司推出的可视化开发环境Developer Studio 下的一个组件,为我们提供了一个集程序创建、编辑、编译、调试等诸多工作于一体的集成开发环境(IDE)。

VC 集成开发环境功能强大,不仅提供了大量的向导(Wizard ),还有完备的帮助功能(MSDN)。

所以,初学者学习C 语言编程,并不需要全面了解开发环境的全部功能。

我们可以在安装VC时选择完全安装MSDN,然后在遇到问题时再去查阅MSDN 中的相关说明。

VC 6.0_Debug调试方法

VC  6.0_Debug调试方法

编译0 error(s), 0 warning(s)链接0 error(s), 0 warning(s)当你按捺不住激动滴心情点击运行后,发现结果并不是你想要的结果……郁闷了。

然后你在代码中加了n条printf来查看变量的结果……n多循环……运行,再加printf,again and again……终于,要抓狂了……好吧,同学,如果你会用Debug,也许你不用这么纠结。

下面通过一简单例子说明如何使用Debug的一些“基本”(我也只是刚入门的小菜鸟,高级的修行要靠自己的了)功能:写了如图中的一个简单程序,编译链接都没有错误,运行结果却不理想(不正确)需要指出的是,主函数不要再用void main()了,这种只有在你学的环境才不会出错,到别的(linux编译器)地方编译是通过不了的。

main函数必须要有返回值,如写成int main()在函数结尾时加一个return 0;,这样,所有编译器都不会报错了。

最终结果确定是逻辑错误,如果不用单步调试,很难找出这种错误的。

这里先提到一个断点的概念,顾名思义,既是在你需要的地方让它断开,如果你在某一行代码处添加了断点,那么程序运行到断点处即会暂停,不再继续往下运行,直到接到你继续运行的命令。

对上边示例的程序,在你感觉可能有问题的地方添加断点(按快捷键F9或者点击图中小手按钮),以便运行到断点处好查看运行状态。

2012-07-21更新:上边划掉的部分以前就发现有点没解释清楚,一直没来得及更正。

现更正下:之前只知道一个F10,所以解释成了遇到函数会认为是一步直接过去{ } ,得到返回结果。

其实可以从调试的菜单中看到,F10是step over ,意思就是跳过{ } 图标上也有形象的表示,仔细看还有一个F11 是 step into,即进入{ } 内的意思,这下就可以解释清楚了为什么会跳过去,还有其它的更多的快捷键,需要大家自己研究了,常用的也就这几个吧。

在需要的地方添加完断点后(其实,在每个函数第一个需要停下来的地方添加断点就可以了,剩下的地方都可以用F10单步执行,某些已经验证过正确的函数,就不需要每次进行单步查看了验证过的函数等可以按F10 跳过,想要进入其内部可按F11……)添加完断点,按F5或者下图中的调试按钮,即可出现调试界面。

VC调试版(DebugVersion)和发行版(ReleaseVersion)

VC调试版(DebugVersion)和发行版(ReleaseVersion)

VC调试版(DebugVersion)和发⾏版(ReleaseVersion)调试是纠正或修改代码,使之可以顺利地编译、运⾏的过程。

为此,VC IDE提供了功能强⼤的调试和跟踪⼯具。

1.1.1 调试版(Debug Version)和发⾏版(Release Version)开发环境总是为你的⼯程创建调试版和发⾏版。

在调试版⾥,我们排查各种可能的程序错误,然后制作成发⾏版以获得较好的信息。

这就是调试版与发⾏版的区别:前者包含了较多调试信息,最终执⾏⽂件较⼤,性能较差;后者最终执⾏⽂件较⼩,性能更好。

具体地讲,发⾏版和调试版区别有:1. 调试版下,可以使⽤诊断和跟踪宏,如ASSERT和TRACE,MFC类的DUMP功能也定义在调试版下。

2. 额外的变量初始化。

编译器会⾃动将你未初始化的变量逐每字节赋值为0xCC。

3. 内存分配监视。

在调试版下,在堆上分配的内存都会记录,做额外的初始化(0xCD),在释放时,会将其内容逐字节置0xFD。

怎样配置调试版或发⾏版?调试版和发⾏版都可以从 Build | Configurations中增加,或者当这两个配置已存在的情况下,从Project | Settings命令下进⾏配置。

两者在配置上主要有以下不同:1. 两个版本应该配置成不同的输出⽂件夹。

这在Project | Settings | General中的两个编辑框中设定。

2. 调试版下,程序应该链接Debug版的c运⾏时库、禁⽌代码优化,并在C++属性页中的Preprocessor类别中加上预定义标识符_DEBUG。

在Link属性页中的Debug类别中,选中DebugInfo和Microsoft Format选框。

4. 发⾏版下,程序应该链接Release版的c运⾏时库、设置代码优化,不定义_DEBUG标识符,去掉DebugInfo选框中的选择。

1.1.2 排除编译错误VC6.0的编译器可以报告⼤约1100个左右的错误,这还不包含警告。

c程序调试方法以及常见错误

c程序调试方法以及常见错误

目录使用VC6.0对C语言程序进行调试的基本手段 (2)(1)设置固定断点或临时断点 (2)(2)单步执行程序 (2)(3)使用断言 (3)(4)与调试相关的操作菜单:Build菜单 (4)(5)与调试相关的操作菜单:Debug菜单 (4)VC6.0常见编译错误提示 (6)(1)error C2001: newline in constant (6)(2)error C2015: too many characters in constant (6)(3)error C2137: empty character constant (6)(4)error C2018: unknown character '0x##' (6)(5)error C2041: illegal digit '#' for base '8' (6)(6)error C2065: 'xxxx' : undeclared identifier (7)(7)error C2086: 'xxxx' : redefinition (7)(8)error C2374: 'xxxx' : redefinition; multiple initialization (7)(9)C2143: syntax error : missing ';' before (identifier) 'xxxx' (8)(10)error C4716: 'xxx' : must return a value (8)(11) warning C4508: 'main' : function should return a value; 'void' return typeassumed (8)(12)warning C4700: local variable 'xxx' used without having been initialized (8)VC60.0常见链接错误 (10)(1)error LNK2001: unresolved external symbol _main (10)(2)error LNK2005: _main already defined in xxxx.obj (10)使用VC6.0对C语言程序进行调试的基本手段(1)设置固定断点或临时断点所谓断点,是指定程序中的某一行,让程序运行至该行后暂停运行,使得程序员可以观察分析程序的运行过程中的情况。

Visual C++ 6.0 - 工程设置解读

Visual C++ 6.0 - 工程设置解读

VC6.0的工程设置解读Project--Settings 做开发差不多一年多了,突然感觉对VC的工程设置都不是很清楚,天天要和VC见面,虽然通常情况下一般都不会修改工程设置,但是还是有必要对它的一些设置项的来龙去脉有一定的了解,所以狂查资料,稍作整理,总结一篇文档,方便以后查阅,总得记录点什么,温故而知新嘛。

进入工程设置界面有两种方法:方法一,选择法:【Project】->【Settings】方法二,快捷键:【Alt+F7】打开工程设置对话框,如下图:左边的列表可以选择要设置的工程编译方式(Debug或Release),如果多个工程,还可以选择要设置的工程。

右边是一个属性页,内容十分丰富,依次是:General , Debug , C/C++ , Link , Resource , MIDL , Browse Info , Custom Build , Pre-link Step , Post-build step下面主要介绍各个选项的功能:【General】设置工程的一般特性。

1.Microsoft Foundation Classes 连接MFC静态库的方式,默认为共享的DLL方式,对一些不支持MFC42的机器环境来说,选择静态编译还是有必要的。

2.Intermediate files 中间文件输出路径,比如:*.obj、*.pch、*.res、*.sbr、*.idb、*.pdb3.Output files 输出文件路径,比如:*.exe。

4.Allow per-configuration dependencies 按外部制作文件(exported makefile)方式为每个工程配置导出不同的可建立项目。

【Debug】设置工程调试的选项。

Category 选项种类,先看看General种类选项卡1.Executable for debug session 如果是dll的工程,需要指定启动它的exe文件路径,如果是exe工程,默认当前工程路径。

VC6.0将程序打包成一个可执行文件(release)

VC6.0将程序打包成一个可执行文件(release)

VC6.0将程序打包成一个可执行文件(release)
首先打开程序,工程—>设置,左侧下拉列表选择Win32 Release,右侧"Microsoft 基础类",不选择,确定。

然后选择组建—>批组建,去掉debug前面的钩,保留release 前面钩,确定,完成。

完成之后会在主目录下生成Release文件夹,里面的exe文件拷出来可以独立运行。

(2)MFC程序
首先打开程序,工程—>设置,左侧下拉列表选择Win32 Release,右侧"Microsoft 基础类",选择“使用MFC作为静态链接库”,确定。

然后选择组建—>批组建,去掉debug前面的钩,保留release 前面钩,确定,完成。

完成之后会在主目录下生成Release文件夹,里面的exe文件拷出来可以独立运行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VC6.0 Release 如何调ase版程序,什么是Debug版程序
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
OK,知道了这些,谁还会说RELEASE版本不能调试?
只需要设置相应编译环境,RELEASE同样可以像DEBUG版本设置断点,查看参数。
步骤如下:
1、在Project Settings里选Settings For为All Configurations。
2、在C/C++标签中,Debug info 选 Program Database。
Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论)
Debug 版本
参数 含义
/MDd /MLd 或 /MTd 使用 Debug runtime library (调试版本的运行时刻函数库)
Release 版本
参数 含义
/MD /ML 或 /MT 使用发布版本的运行时刻函数库
/O1 或 /O2 优化开关,使程序最小或最快
/D "NDEBUG" 关闭条件编译调试代码开关 (即不编译assert函数)
/GF 合并重复的字符串, 并将字符串常量放到只读内存, 防止被修改
实际上,Debug 和 Release 并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的调试版本或是带跟踪语句的发布版本。
3、在Link 标签中,Category选 Debug,选中Debug info 复选框和Microsoft format。
现在就可以像在Debug版本中那样设置断点进行测试了,但是记住,Release版本由于代码优化,有些变量是观察不到的,行的运行顺序可能也会不同。
/Od 关闭优化开关
/D "_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关 (主要针对assert函数)
/ZI 创建 Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译
/GZ 可以帮助捕获内存错误
/Gm 打开最小化重链接开关, 减少链接时间
相关文档
最新文档