使用DEV C++调试代码
0.序言
本片博客旨在记录通过DEV C++工具调试C/C++代码,在这之前需要对以下知识了解或掌握。
1.开发工具配置
我所使用的DEV C++版本为5.11,默认设置就已经支持调试了,看其他博客经常会提到默认设置无法调试,可能是使用的旧版本4.xx。这里记录一下他们修改默认设置为可调试的步骤
添加std标准库版本设置
工具》编译选项》编译器》编译时加入以下命令:
-g3打开调试信息
还是这个窗口,打开
代码生成/优化选项卡》连接器》修改产生调试信息为Yes
经过测试,上述配置会在编译过程添加这些选项
# 预处理->生成xxx.i文件->编译->生成xxx.s文件->汇编->生成xxx.o文件
#
g++.exe -D__DEBUG__ -c main.cpp -o main.o -I"D:/software/Dev-Cpp/MinGW64/include" -I"D:/software/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/software/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"D:/software/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" -g3 -std=c++11
# 链接
g++.exe -D__DEBUG__ main.o -o "hello world.exe" -L"D:/software/Dev-Cpp/MinGW64/lib" -L"D:/software/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -g3
更多完整的选项可以参考官网的文档说明
2.调试所需源代码
#include <iostream>
using namespace std;
int add (int a , int b){
return a+b;
}
int main(int argc, char** argv) {
int a = 1+1;
cout << "hello world!";
int b = 1+2;
int c = add(a,b);
int d = 1+3;
int e = 1+3;
return 0;
}
代码内容很简单,这里就不展开解释。
3.调试过程详解
可以去菜单栏运行下面的子菜单,了解一下每一个菜单的作用

你也可以通过工具栏的图标来实现同样的效果。

点击全部重新编译(快捷键F12),可以看到编译日志记录如下:
重新生成整个项目...
--------
- 项目文件名: D:\otherworkspace\devcppworkspace\hello world\hello world.dev
- 编译器名: TDM-GCC 4.9.2 64-bit Debug
生成 makefile...
--------
- 文件名: D:\otherworkspace\devcppworkspace\hello world\Makefile.win
正在处理makefile...
--------
- makefile处理器: D:\software\Dev-Cpp\MinGW64\bin\mingw32-make.exe
- 命令: mingw32-make.exe -f "D:\otherworkspace\devcppworkspace\hello world\Makefile.win" clean all
rm.exe -f main.o "hello world.exe"
g++.exe -D__DEBUG__ -c main.cpp -o main.o -I"D:/software/Dev-Cpp/MinGW64/include" -I"D:/software/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/software/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"D:/software/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" -g3
g++.exe -D__DEBUG__ main.o -o "hello world.exe" -L"D:/software/Dev-Cpp/MinGW64/lib" -L"D:/software/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -g3
g++.exe -D__DEBUG__ main.o -o "hello world.exe" -L"D:/software/Dev-Cpp/MinGW64/lib" -L"D:/software/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -g3
编译结果...
--------
- 错误: 0
- 警告: 0
- 输出文件名: D:\otherworkspace\devcppworkspace\hello world\hello world.exe
- 输出大小: 1.88690853118896 MiB
- 编译时间: 2.42s
开始调试代码:
添加以下断点

点击开始调试按钮之后,可以看到当前运行行背景颜色为蓝色。
调试相关窗口说明如下图。
最常见的按钮就是调试,单步进入和停止执行

使用DEV C++调试代码的更多相关文章
- Eclipse debug断点调试代码时出现source not found问题
偶尔调试代码的时候会出现这种事情,之前并没有特别注意,今天稍微搜集一下相关资料: 1.跳转到的代码的确没有源码,下载源码后选择源码位置后便会正常显示源码. 2.源码和class文件不一致.即便勾选了a ...
- PHPStorm+Wamp+Xdebug+Windows7调试代码
Wamp 集成环境 PHPStorm+Xdebug 调试代码 2013.04.16 花了两个小时时间终于 , 配置成功了 ! 我的开发环境如下 , 其它环境也可以参考我的配置 开发环境 : Windo ...
- [ActionScript&Flex] FlashBuilder编译条件之如何屏蔽调试代码
下面讲一下在FlashBuilder中如何添加编译器参数使我们在发布的时候不编译调试代码: 首先设置编译参数 编译参数设置好后,代码我们可以这样写: public class ConditionalC ...
- 在Ubuntu中使用JDB调试代码
在Ubuntu中使用JDB调试代码 了解JDB JDB是JDK安装的一部分,是基于文本和命令行的调试工具,JDB是可以免费获取且平台独立的,缺点是只有命令行格式. JDB基础命令 在方法中设置断点st ...
- PyCharm实现高效远程调试代码
PyCharm实现高效远程调试代码 (薛刚强) 为方便Python代码学习和项目开发,目前选择专业的 IDE 开发工具 ,如 PyCham.针对个人使用的技巧做个笔记,分享给大家,有描述 ...
- C++雾中风景番外篇3:GDB与Valgrind ,调试代码内存的工具
写 C++的同学想必有太多和内存打交道的血泪经验了,常常被 C++的内存问题搅的焦头烂额.(写 core 的经验了)有很多同学一见到 core 就两眼一抹黑,不知所措了.笔者 入"坑&quo ...
- chrome单步调试代码
单步调试代码 所有步骤选项均通过边栏中的可点击图标 表示,但也可以通过快捷键触发(鼠标悬停在操作图标上就可以看到快捷键).下面是简要介绍: 图标/按钮 操作 描述 Resume 继续执行直到下一个断点 ...
- JAVA Debug 调试代码
JAVA Debug 调试代码 1.什么时候使用Debug: 程序的运行结果,与你的预期结果不同时,Debug的目的是找错误,而不是该错误: 2.早期调试代码的方式就是打桩: System.out.p ...
- vs2008 怎么在Release下调试代码
vs2008 怎么在Release下调试代码 (适用VS2005/VS2008) 在当前工程点击右键选择properties,选择 All Configurations C++>General- ...
随机推荐
- 基于 Blazui 的 Blazor 后台管理模板 BlazAdmin 正式尝鲜
简介 BlazAdmin 是一个基于Blazui的后台管理模板,无JS,无TS,非 Silverlight,非 WebForm,一个标签即可使用. 我将在下一篇文章讨论 Blazor 服务器端渲染与客 ...
- CSS之position属性
层级的话可以用z-inde进行设置
- Linux搭建rsync服务
一.Rsync的简单介绍 Rsync是一款开源的.快速的.多功能的.可实现全量及增量(全量备份是指全部备份,增量备份是在上一次备份的基础上只备份更新的内容)的本地货远程数据同步备份的优秀工具.Rsyn ...
- vue路由基础总结
1.创建项目 为了练习路由 这里没有选择路由 就选了Bable 自己一步一步的配置 加深印象. 然后下载路由 npm install vue-router --save 2.基础配置 src文件下新建 ...
- 使用Power BI API 向流数据集推送实时数据并在仪表板可视化
使用Power BI 实现实时数据的可视化是大家比较关心的一个话题,在仪表盘上实现推送数据的展示,可以在诸如指挥大屏等场景下使用. 本视频实战内容如下: https://v.qq.com/x/page ...
- 记录MyBatis text类型 查询 更新 数据是null
数据库表里面存在text或者blob字段.逆向工程自动生成的MyBatis的xml中会多出几个以withBlobs结尾的方法和resultMap 此时查询数据或者更新数据的使用仍然使用selectBy ...
- 第二个视频作品《[SpringCloudAlibaba]微服务之注册中心nacos》上线了
1.场景描述 第二个视频作品出炉了,<[SpringCloudAlibaba]微服务之注册中心nacos>上线了,有需要的朋友可以直接点击链接观看.(如需购买,请通过本文链接购买) 2. ...
- Java之JDK配置
目录 JDK配置 进入配置界面 配置JAVA_HOME 配置Path 配置CLASSPATH 查看是否成功 JDK配置 系统重装,由于要设置各种环境变量,怕之后还会遇到这个情况,特此记录一下. 前提: ...
- Snack3 之 Jsonpath使用
Snack3 之 Jsonpath使用 一. Snack3 和 JSONPath 介绍 Snack3 是一个支持JSONPath的JSON框架.JSONPath是一个很强大的功能,也可以在Java框架 ...
- c++多个文件中共用一个全局变量 变量跨文件使用
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/12047602.html 虽然很多博客都写过这个了 但是 我还是继续补充的详细一点吧 毕竟很多 ...