Dev-Cpp/Mingw32 环境介绍(3)

Dev C++调试程序方法详解 阅读详情

本文转载自:http://blog.youkuaiyun.com/VisionCat/archive/2004/08/09/69532.aspx

Dev-Cpp/Mingw32 环境介绍(3)

上文回顾:


  上文《Dev-Cpp/Mingw32 环境介绍(2)》向各位介绍了一些有关Dev-Cpp的功能,其中有包的安装和一些小功能。希望能得到你的满意。这次,我们就继续介绍Dev-Cpp的其他功能。其实,说句实话。对于GNU的东西,我个人觉得还是提示符下用的舒服。我也不知道为什么。有很多功能,在提示符下很简单的打几个字符,可以完成像Windows的IDE需要点很多鼠标才能完成的功能。我说这个并不是没有道理的空穴来风。本次我将为你展现我这一观点。

 

第五章 在Dev-Cpp下的程序调试

 

  对于任何程序员来说,程序的调试是再需要不过了。如果没有程序调试,那么程序的稳定又从何说起呢?现在我们就来看看如何使用Dev来调试我们亲爱的程序吧。
  众所周知,GNU有一个非常棒的调试程序GDB,可是由于常常使用VC。所以,对于这个许多人都有所而闻而未目睹这一程序的芳容。现在我们就来掀开他的盖头来。首先,我们超常,启动Dev-Cpp这次我们要做的是在Dev-Cpp下调试程序。在Dev-Cpp下,调试程序并不像在VC下那样有专门的程序界面来做。他的调试界面就在代码框的下面。只要选择下面的 调试 选项卡就可以看到调试界面了。
  在各位看到调试界面后,会不会有一种凄凉的感觉?其实我已经凄凉了好几年了。大家也就将就一下了。其中调试选项卡中还有三个选项。调试,回溯,输出。其中,调试就是将一些调试的命令做成按钮,方便各位操作。不过我个人觉得这个功能说方便也不方便。因为有些时候就是很简单的一个操作也会让使用的人手忙脚乱的。回溯,是将GDB调会的有关函数的信息显示出来,这个功能还不错。输出,是将用户的GDB命令直接输出给GDB程序,没有按钮了,不过这个界面有个不太好的地方,就是显示GDB返回信息的窗口太小了。有种管中窥豹的感觉,很不舒服。
  话说那么多,觉得有些罗嗦。各位是不是手痒痒了?(该不是小儿多动症吧?)现在随便开启一个程序,最好是代码行数多点的,参数多点的,函数多点的,提示符界面的程序。因为,这个可以帮助你们了解基本的运行机制嘛。
  点击调试窗口的调试按钮,如果你的程序没有调试信息,那么Dev会提示你是否重新编译程序加入调试信息。选择是。然后程序将使用Debug方式重新编译连接程序。在完成之后。我们就开看看自己的程序吧。首先,我们先要运行GDB。在次点击调试,或者将编辑区的光标移动到你要运行到的位置点击运行到光标。然后,程序就开始运行了。其中,你会看到在编辑区中有一个蓝色的条子。这个就指示你该程序运行到何处了。如果你愿意,可以继续向下运行一行。你只要点击 下一步 就可以完成。对于其他有关GDB的操作,比如代码的查看,变量的查看,函数的信息等等,只有通过输出来完成了。选择输出,然后在输出中的字符输入框中输入你的GDB命令。比如:list 这个命令将在下面的字符框中列出程序的代码。当然,你要上下找找,因为框太小,看起来很麻烦。
  好了,有关IDE中的调试,本人就介绍到这里。在深入的东西,当然也没有深入的东西了。再深入的话,怕我没有累死,大家可要看着烦死了。其实上面介绍的一些操作如果再提示符下很容易就Ok了。更本不需要那么复杂。我想,可能这也是Dev不能流行的一个主要原因吧。因为界面的操作太不人性化了。

 

第六章 在提示符下的程序调试


  上一章中,我们领略了Dev-Cpp下的调试。真是让人有些不感恭维。接下来我们来欣赏一下标准,经典的GDB调试。如果各位对Linux等系统有所了解的话,应该知道提示符是许多经典软件的常用界面。所以,要使用一些经典的东西,看来还是要在提示符下多熟悉熟悉了。当然,这里的提示符并不像各位想的那么麻烦,要有上百条命令要记忆。其实,像GDB这样的程序,基本就是一个很简单的命令就可以解决了。而且非常灵活。
  接下来我就来介绍一个GDB的调试。
  首先我们必须要一个可以调试的代码。现在我们用gcc main.c -o main -g来生成可调试的代码。然后用gdb main 来启动gdb。是不是没有想象的那么复杂啊?如果顺利您会看到一段GDB的版权信息,接着是(GDB)这样一个提示符。现在您就可以对GDB下命令了。
  看看程序代码。如果,我们想看看调试程序的源代码而又不想开启main.c这个文件(更多的原因是要为后面设置断点等来做铺垫)。那么我们可以输入list或者,l就可以查看程序代码了。是不是啊?看来提示符并没有像我们想象的那么可怕。
  运行程序代码。虽然调试是可以那么我们该如何在调试的时候运行代码呢?很简单。输入run或者r就可以运行了。如果前面设置过断点,那么使用这个命令可以让程序运行到断点。
  为调试设置断点。使用break可以设置断点,让调试程序在断点停止运行的程序。break 后面必须有一个参数。参数可以是行号。如,break 10 就是在第10行设置断点。也可以是函数名称break main就是在main函数处设置断点。
  查看程序变量。如果您像查看程序中的变量,可以用paint或者p命令来实现。这两个命令后必须加上变量名称。如 p argc就是显示argc的值。而使用info命令可以查看相关的信息,如内存位置什么的。
  一步步运行程序。如果您像在断点后一步步的执行程序,可以用n或者next命令来执行下一行代码。
  退出调试。输入q退出程序。

  是不是觉得提示符下的调试要比IDE中的简单?你不要以为这就是GDB的全部功能。我在这里只是为各位展示一下GDB。如果各位要了解更多的关于GDB的使用方法。可以查看技术手册或者到网上寻找相关的文章,可以找到很多。
  最后,如果对于GDB和调试程序有什么疑问,我们可以一起探讨。


文外音:


这次的文章好像很短,我也觉得。但是,没有办法。所谓众口难调。这一章总是要讲的。干脆提早一些写好。下一篇我们将进入项目的建立和静态库的使用。我想一定会让你感到兴奋的。最后,希望你能够多多指教。我的格言:不论是思想还是程序,唯有通过不断的交流才能愈加完善。

 

STUDIO软件开发组

北斗星君(黄庠魁)


windows 下配置Dev Cpp和QT 4.3.3 1 安装QT4和Dev-Cpp      Dev-cpp版本:4.9.9.2      下载地址:http://sourceforge.net/project/downloading.php?groupname=dev-cpp&filename=devcpp-4.9.9.2_setup.exe&use_mirror=nchc(右键迅雷下载)      Qt版本:4.3.3      下载地址:ft 阅读详情

相关推荐

Dev-Cpp/Mingw32 环境介绍(1)

Dev-Cpp/Mingw32 环境介绍(1) 前言  对于现在越来越多得关于编程方面得问题和商业公司对版权问题的担心。所以向各位推荐一款类似于VC的IDE。这款IDE所使用的编译程序是 GCC的Win32版本 Mingw32。而IDE本身也是GPL协议的产物。所以,不论是商业用户,还是个人用户都能够自由的使用她,而不必为使用盗版软件而提心吊胆的。另外,由于Mingw32是GCC的

北斗星君的专栏 2万+

devcpp如何调试

断点、查看普通变量值、数组值。

Dong's Blog 1797

Jupyter实战:解决ModuleNotFoundError之xgboost缺失问题

本文详细解析了在Jupyter Notebook中遇到ModuleNotFoundError: No module named 'xgboost'错误的完整解决方案。通过诊断环境、使用pip正确安装xgboost、配置Python路径以及最终验证,帮助用户彻底解决模块缺失问题,并理解Jupyter内核与Python环境的关系,提升问题排查能力。

weixin_29064103的博客 384

Dev-C++如何更改32位或64位

下载之后:怎么办呢???

zjr120319的博客 2694

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

weixin_40735291的博客 6618

VS2022离线安装包 - 下载安装教程

VS2022离线安装包 - 下载安装教程

鲤籽鲲的博客 3万+

Dev C++软件调试代码详解

Dev-C++是一款功能强大的C/C++集成开发环境,它提供了丰富的调试功能来帮助我们定位和解决代码中的问题。通过本文的介绍,我们详细了解了如何使用Dev-C++进行代码调试,包括设置断点、开始调试、查看变量值等步骤。同时,我们还分享了一些调试技巧和经验,希望能对大家有所帮助。在实际开发中,我们应该充分利用Dev-C++的调试功能来提高开发效率和代码质量。

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 5477

SAP PPDS启发式排产实战:从零配置到自定义规则开发(附ABAP代码示例)

本文详细介绍了SAP PPDS启发式排产的实战应用,从基础配置到自定义规则开发的全流程。通过ABAP代码示例,展示了如何实现多目标优化、实时响应和约束可视化,帮助企业提升订单交付率、减少设备闲置时间。文章还包含开发环境准备、标准模板解析、自定义开发步骤及性能优化技巧,适合制造业数字化转型的实践参考。

seed的博客 183

Dev-Cpp/Mingw32 开发环境介绍(3):程序调试

Dev-Cpp/Mingw32 环境介绍(3)上文回顾:  上文《Dev-Cpp/Mingw32 环境介绍(2)》向各位介绍了一些有关Dev-Cpp的功能,其中有包的安装和一些小功能。希望能得到你的满意。这次,我们就继续介绍Dev-Cpp的其他功能。其实,说句实话。对于GNU的东西,我个人觉得还是提示符下用的舒服。我也不知道为什么。有很多功能,在提示符下很简单的打几个字符,可以完成像Win

roger007的专栏 1829

安卓逆向实战:用Batch Apktool 3.8.0快速汉化APK的完整流程

本文详细解析了如何使用Batch Apktool 3.8.0进行安卓APK汉化的完整流程,包括环境配置、反编译、资源解析、深度汉化、重构建与签名优化等关键步骤。通过这款集成化逆向工具,开发者可以高效完成APK汉化,提升工作效率。

s1t2u3的博客 1099

Rockchip平台之RK3566/3568 OS02N10

文章摘要 本文主要介绍了200W摄像头传感器OS02N10在RK3566平台上的兼容与适配过程。作者基于之前的400W摄像头兼容经验,针对200W摄像头进行了类似的适配工作。文章详细阐述了RK3566芯片的特性和OS02N10传感器的技术参数,包括分辨率、接口和功耗等。适配过程分为三个关键部分:DTS设备树文件配置(定义I2C地址、电源域和GPIO控制等)、驱动文件开发(寄存器初始化和操作)以及XML和JSON配置文件调整(图像参数设置)。作者特别强调了初始化数组中空寄存器终止条件的重要性,并分享了兼容过程

different_xzh的博客 2412

在Windows系统中配置32位和64位的GCC编译环境

在Windows系统中配置32位和64位的GCC编译环境

xiangru的博客 2992

Qt | 开发过程中总结的经验

关于如何判断自己的Qt库是多少位,有个误区就是很多人要么看成了QtCreator的关于信息中列出的位数,要么以为自己是64位的系统就认为是64位的Qt,最终要在Qt构建套件中查看具体位数,大概从Qt5.14开始基本上很少提供32位的库,尤其是Qt6.0以后基本上默认就是只有64位的库了,这也是顺应时代潮流,毕竟不久的将来(个人预计2030年以前)基本上32位的系统占比不超过1%,放心大胆的用64位的库吧,抛弃烦人的32位以及XP系统。Qt常用类的头文件的函数看完学完使用一遍并加以融会贯通,月薪30K起步。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 491

C语言软件大全 好用的C语言软件排行

探索编程世界的核心工具,C语言软件大全揭示了当前最热门、高效实用的C语言软件排行榜。无论是初学者还是资深开发者,这里汇集了�

bucenggaibian的博客 426

4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 方法实现指南

首先第19行CREATEDATA创建er_entityset实例,指定其类型为zcl_zbook_manage_mpc=>tt_book,接着把这个引用映射到刚刚第五行定义的FIELD-SYMBOLS变量上去,这样的话,接下来我们对FIELD-SYMBOLS进行的操作,就会自动反应回引用变量er_entityset.因为我们可能在这个方法里,返回多条图书信息,所以需要用内表类型,而非单条记录的ts_book.ts_book代表一本图书的数据结构。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2962

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Dev-C++编译器选项深度解析:从C++标准到第三方库集成实战

编译器是软件开发的核心工具,负责将高级语言源代码转换为可执行的机器码。其工作原理涉及词法分析、语法分析、语义分析、优化和代码生成等多个阶段。合理配置编译器选项能显著提升代码性能、确保跨平台兼容性,并有效管理依赖。在工程实践中,这直接影响构建效率、调试体验和最终产物的稳定性。对于使用GCC工具链的C/C++项目,掌握编译与链接的配置尤为关键。本文聚焦于经典IDE Dev-C++及其现代分支“小熊猫Dev-C++”,深入探讨如何通过编译器选项精准控制语言标准(如C++11/17)、优化级别、调试信息生成以及第三

weixin_33617691的博客 321

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

ARM汇编中MAP与FIELD指令的内存管理实践

在嵌入式系统开发中,内存管理是核心基础技术,直接影响系统性能和稳定性。ARM架构通过存储映射机制提供硬件级内存控制能力,其中MAP和FIELD指令组合实现了声明式内存布局定义。这种技术通过基地址绑定和自动偏移计算,既保证了内存访问的安全性,又提升了寄存器操作的效率。在实时操作系统、外设驱动开发等场景中,开发者常用其定义数据结构布局、管理外设寄存器组。特别是在RTOS任务控制块、内存分配器实现等典型应用中,结合缓存行对齐等优化技巧,能显著提升ARM处理器的执行效率。通过本文介绍的GPIO驱动开发等实战案例,可

weixin_33690367的博客 482

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Dev-Cpp/Mingw32 环境介绍(2)

Dev-Cpp/Mingw32 环境介绍(2)上文回顾:  上文(《Dev-Cpp/Mingw32 环境介绍(1)》)我们知道了该如何安装和使用Dev-Cpp。并且,知道了一些有关Mingw32的一些用法和一些有关程序的介绍和使用方法。学会了一些基本操作的方法。如新建项目,编译项目等。这一次,我们将继续上一次的内容。第三章 为你的Dev-Cpp安装开发包   对于许多程序员来说

北斗星君的专栏 1万+

Dev-Cpp/Mingw32 环境介绍

http://wxjiao.blog.hexun.com/1945078_d.html     Dev-Cpp/Mingw32 环境介绍 [转贴 2005-12-30 14:37:51]   字号:大 中 小 文章来源: 点击查看原文:Dev-Cpp/Mingw32 环境介绍 Dev-Cpp/Mingw32 环境介绍(1)   前言

zenwanxin的专栏 1万+

Dev-Cpp/Mingw32 环境介绍(12)

Dev-Cpp/Mingw32 环境介绍(12)上文回顾:在上一篇文章中,我们了解了如何在MinGW中设置GTK和使用GTK。从这一篇开始,我我们就要开始进入中级篇了。也就是说,我们主要以MinGW和其他GCC在Win32下的使用为主。而不是如同原来只介绍那些操作IDE,安装组件等。如果说,以前我们是在跑道上,那么现在我们就要起飞了。所以,我们会比较注重以MakeFile来说明程序的配置。同时会带

北斗星君的专栏 7378

《Dev-Cpp/MinGW32 环境介绍》改版初搞

《Dev-Cpp/MinGW32 环境介绍》改版初搞 背景: 自从2004年8月第一篇《Dev-Cpp/MinGW32 环境介绍》问世以来,这一系列的文章可谓是受到广大变成爱好者的欢迎和拥护。可以说,这一系列的文章是我高中时代的一份代表作。原本只是出于好玩所写的文章,却成为了人们互相传阅的文章,这一点是我所没有料到的。正如我所说的,这些文章是我高中所写的,所以,由于时间上的因素,

北斗星君的专栏 1万+

Dev-Cpp/Mingw32 环境介绍(4)

Dev-Cpp/Mingw32 环境介绍(4)上文回顾:上文《Dev-Cpp/Mingw32 环境介绍(3)》向各位介绍了有关使用GDB调试程序的简单方法。本文我们将会看看Mingw32如何来使用静态连接库。虽然本文出炉的时间的确是有些慢了点。不过我想各位应该能够理解的。第七章 在你的程序中使用静态连接库   在Windows中也许各位都会熟悉以obj和lib结尾的文件。这

北斗星君的专栏 9046
上一篇: Dev-Cpp/Mingw32 环境介绍(2)
下一篇: windows 非法操作详解
cfyy
博客等级 码龄22年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值