CodeBlocks(17.12) 代码调试基础方法快捷方式
1 printf输出代码关键字查找bug
这个是最简单最容易想到的方法,一般初期开始接触c语言,并用其从事简单代码编辑的时候都会很容易就习惯上这种调试方法,对一些特殊情况的实用率可能是最高的(比如结构难以想象的复杂数据结构之类的) |
2 用软件自带的Split view来查看
在CodeBlocks的编辑界面右键找到Split view,Horizontally(top-bottom)(上下)、Vertically(left-right)(左右)、Unsplit(恢复)。 这个设置可以将一份代码分到左右进行函数间的对比,查找错误。 |
3 用ctrl-B标记来对比上下行
在很多IDE里面都有标记的功能,这个软件也不例外,用ctrl-B来标记一行,然后不论你在哪一行的时候都可以跳转,这个就可以在两个距离较远的函数里跳转了,用法应该是比对多个函数?? |
4 用自带的Debug查看程序运行状态
首先我们要知道,CodeBlocks的debug只有在项目里才能用,所以说我们要新建一个项目,CodeBlocks左上角File->new->Project->Console application,然后创建一个project。而且debug功能本身也是要设置的(在不能debug的情况限定, 可以用就不需要设置),设置流程Settings->Debugger...->Default->Executable path->自己CodeBlocks的安装位置->MinGW->bin->gdb32.exe 说起debug 那就不得不说一下watches了,watches会将所有在有用到的所有变量输出,比如在for里才用了的变量i,当程序运行到for外面就不会再出现i这个变量了。 先选择自己的主函数位置,选择Run to cursor按钮就是在红色的debug/continue旁边的按钮,按完如果在界面出现watches窗口那么就不要管,没有的话就自己打开:选CodeBlocks上方的Debug->Debugging windows->Watches,这样就会在每次Debug的时候自动出现。(注意直接选择debug/continue而不设置断点的话,至少在我的程序里的表现是输入相关数据以后直接结束了程序,如果你用debug/continue那么就要设置断点,将光标移动到某一行,按F5设置断点,那么使用debug/continue功能时就会在该断点处停下给你查看watches,然后你就可以用在debug/continue旁边第二个位置的Next line功能一步步的从这一步开始往下走。)设置好watches以后用Run to cursor功能运行程序,这个功能会让你用Next line一步步运行完全部代码,和debug/continue不同,他是会将全部的参数变化展现在watches界面。自己试试就知道。 这里具体介绍了Debugging windows里的Watches,其他的Debugging windows窗口都没有怎么用过。以后看情况更新。 |
5 CodeBlocks测试时间的两种方法
1 #include<time.h> 2 int main(){ 3 clock_t startTime=clock();{ 4 //这里是我们要测试的代码; 5 } 6 clock_t endTime=clock(); 7 cout<<"运行时间为::"<<endTime-startTime<<"ms"<<endl; 8 }
1 #include<windows.h> 2 int main(){ 3 DWORD startTime=GetTickCount();{ 4 //这里是我们要测试的代码; 5 } 6 DWORD endTime=GetTickCount(); 7 cout<<"运行时间为::"<<endTime-startTime<<"ms"<<endl; 8 }
6 CodeBlocks部分快捷方式一览
6.1需要更大编辑空间时,F2和Shift+F2分别可以显隐下方Logs& others栏和左方的Management栏。
6.2 Ctrl+D可复制当前行或选中块(直接复制以后添加在后面)。
6.3 Ctrl+Shift+C注释掉当前行或选中块,Ctrl+Shift+X则解除注释。
6.4 Tab缩进当前行或选中块,Shift+Tab减少缩进。
6.5 可拖动选中块使其移动到新位置,按住Ctrl则为复制到新位置。
6.6 shift + f11 全屏;连点两下当前文件的标签,也就是编辑窗口的左上角那个,会将窗口最大化。
6.7 Ctrl+G到达指定行,ALT+G 到达指定文件(项目里用的),Ctrl+Alt+G 到达指定函数(支持头文件中的函数定义(可能也是项目里的))。
6.8 Ctrl+PageUp到达上一个函数,Ctrl+PageDown 到达下一个函数
6.9 Ctrl+Shift+B可找到匹配的括号。
6.10 看长代码时,可右击,Folding->Fold All,然后慢慢展开来看,也可充分利用左方Management栏的Symbol浏览器。
6.11 ctrl + . 可以从函数声明处找到函数定义
6.12 F3用于寻找下一个所选中的语句块
6.13 代码颜色的更改:找到settings->editor->Syntax highlighting,选择你喜欢的颜色就可以了,最主要的是注释的颜色优点不明显,可以修改comment颜色即可,但是注意不要和其他代码的颜色冲突。
6.14 快捷键的更改:找到settings->editor->keyboard shortcuts,可对一些功能的快捷键进行更改,不过不要与系统本身设置好的冲突(还好冲突时会有提示),更改时要按住相应的快捷键进行过添加,而不是将快捷键名称打出来。
转载于:https://www.cnblogs.com/DCD112358/p/8998053.html
CodeBlocks(17.12) 代码调试基础方法快捷方式相关推荐
- Codeblocks 17.12安装教程
Codeblocks 17.12安装教程 一.下载安装包到电脑 https://sourceforge.net/projects/codeblocks/files/Binaries/17.12/Win ...
- CODEBLOCKS 17.12汉化
CODEBLOCKS 是我个人很喜欢的一个IDE,它轻巧,强大,跨平台,而且新版本更新加入了对Qt5的支持!先贴一张截图: 不说废话,下面说一下汉化包的配置过程: 1.首先在CODEBLOCKS的安装 ...
- Python代码调试方法
对于每个程序开发者来说,调试几乎是必备技能.常用Pycharm编辑器里的方法有Print大法.log大法,但缺少类似Matlab的变量区,给代码调试带来不便,特别是在有函数的情况下,变量无法实时查看. ...
- 1.使用适配器模式设计一个仿生机器人:要求机器人可以模拟各种动物行为,在机器人中定义了一系列方法,如机器人发声方法talk(),机器人移动方法move()等。如果希望在不改变已有Bird类代码的基础上
1.使用适配器模式设计一个仿生机器人:要求机器人可以模拟各种动物行为,在机器人中定义了一系列方法,如机器人发声方法talk(),机器人移动方法move()等.如果希望在不改变已有Bird类代码的基础上 ...
- 什么是代码调试(debugging)?进行代码调试的基本方法有哪些?
文章目录 前言 一.什么是代码调试? 二.常见的代码调试方式 2.1.手工跟踪(hand trace) 2.2.手工跟踪的适用范围 2.3.使用调试工具 2.4.调试工具具备的特性 总结 前言 我们在 ...
- python 除数不能为零的报错有哪些_【社区精选40】Python错误处理及代码调试方法(文末赠书中奖名单)...
本文整理自爱数据学院中的问答 更多精彩问答,进入下方社区网站查看 http://www.lovedata.cn/invitation 社区精选话题 第40期 Python错误处理及代码调试方法 一次写 ...
- 前端基础:初步认识Chrome调试面板,学会简单的代码调试,必会!
在前端开发过程中,我们通过浏览器的页面来查看我们代码编写的成果.然而浏览器的功能非常强大,它不只是能展示我们编写的页面,还能够帮助我们定位开发过程中遇到的问题,提升我们的开发效率.有些时候我们甚至还可 ...
- fire.php,php代码调试利器firephp安装与使用方法分析
本文实例分析了php代码调试利器firephp安装与使用方法.分享给大家供大家参考,具体如下: firephp简述 如果你曾经写过js代码的话,那么你对如下的代码肯定不会陌生: console.log ...
- Python 代码调试二三事
♚ 作者王维栋,网易游戏运维与基础架构部,产品软件设计师,专注于智能监控.性能优化等领域. 本文来自<网易游戏运维平台 (neteasegameops)>微信公众号的投稿,隶属于网易游戏运 ...
- Linux后台开发系列之「08.15 个 gdb 调试基础命令」
代码键盘 版权声明:本文为 cdeveloper 原创文章,可以随意转载,但必须在明确位置注明出处! gdb 简介 gdb 是 UNIX 及 UNIX-like 下的调试工具,在 Linux 下一般都 ...
最新文章
- 阅读豆丁网----基于模型的混合多目标算法的研究
- 等差数列末项_等差数列末项(第n项)公式
- WINDOWS XP 开始→运行→命令 集锦
- Nginx学习之五:Nginx第三方模块
- C语言中的二级指针和二维数组问题
- stmmac 中断处理
- yii2.0AR两表联查
- 1100: 求组合数(函数专题)
- linux下c语言线程传参数,【linux】C语言多线程中运行线程池,在线程池中运行线程池,,传递的结构体参数值为空/NULL/0...
- C#获取本执行程序所在的当前路径
- 德克萨斯州ADRN组织支持12种加密货币捐赠 现已收到700美元ETH捐款
- “超人”助阵,IE静音很简单
- 通过掌握谷歌成为更好的程序员
- linux执行jmeter脚本解决响应数据为空
- 巧替换windows 7中的宋体 simsun.ttc
- 斐讯k2p梅林忘记密码恢复出厂之后的解决办法
- 软件开发javascript html实现网页版日历代码_javascript技巧
- 32位服务器系统支持8G内存,32位系统怎么支持8g内存条win10 64位系统闲置服务器...
- maxpooling反向传播
- 罗云彬:实现水波特效的代码例子
热门文章
- javascript 动画效果(多物体缓冲运动,多物体透明度变化,匀速移入移出、链式运动、同时运动)
- Joda-Time简单使用
- 老司机带你了解微信/支付宝支付的相关概念
- MyBatis sql查询字段问题
- MessagePack 二进制序列化格式 开发入门详解
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_02-freemarker介绍
- 小D课堂 - 新版本微服务springcloud+Docker教程_5-05熔断降级服务异常报警通知
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第2节 Stream流式思想概述_2_使用Stream流的方式,遍历集合...
- STM32的AD通道干扰问题
- ZwQuerySystemInformation 枚举驱动模块