[转载]掌握C++Builder的调试艺术

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

(作者:霍炬编译)

  程序的bugs越少,最终用户对这个程序的评价越高。而开发人员事先对bugs的处理越多,最终用户能提供的关于bugs的信息就越多,也越准确,这样,开发人员在接到最终用户反映之后,就能够快速找到出现bugs的那部分代码,并以最快速度发布程序的升级包。

  在这份教程中,我们从最基本的部分开始,逐步介绍许多在调试程序时“应该做”或“不应该做”的原则。正如你将看到的,这份教程中所指的“调试”这个词所包含的意思很多,而不只是如大部分人所想到的--利用IDE集成的调试器的“调试”。我希望读过这份教程之后,读者可以在思路上有所收获。

写易读的代码
  第一点,大概也是最重要的一点,就是写干净易读的代码。易读的代码是很有价值的。请想象一下,如果随便扫视一眼代码或注释,就能立刻知道这段代码的的作用,以及在写代码的时候为什么要这样写,当时的思路是什么,那么就可以节约大量时间。这样的代码,在写的时候可能会稍稍慢一些,不过,当你调试程序时,就不会花上几个小时来寻找bugs,相反,你可以快速,简单的完成除错工作。这时,你就会觉得多花一些时间使程序易读是很值得的。

  所以,我推荐你在写程序的时候,应该养成自己的风格,或是读一读Scott的关于代码风格的文章。

使用Exceptions和Exception的处理方法
  我们教程的下一步,仍然是以代码为基础的。因为除去一些少数的情况,开发人员不可能总是依靠于集成的调试工具。所以,学会用其它的方法来找到烦人的bugs是很重要的。一些重要的、处理的错误可能会在窗体之外发生。在C++标准制定出来之前的黑暗日子里,在程序里面发出发生错误的信号,通常是通过返回错误代码完成的(现在这种方法仍然应用于OLE技术和一些Winapi函数),这样的处理方法很容易就会被忽略。(比如说,你经常检查winapi函数的返回值吗?)所以,出现问题的可能性并不小。由于以上的原因,我们需要一个

C++Builder轻松创建票据套打组件 在网页中实现票据套打的方法很多,但开放源代码的并不多,在这里提供一种简单的方法实现简单的票据打印供大家参考。开发工具:Borland C++Builder 6.01、打开C++Builder,点击菜单File>>Close All关闭系统自动创建的Application,当然,这一步也可以不需要,直接进行下面的一步;2、点击菜单File>>New>>Other,在NewItems对话框 阅读详情

相关推荐

书籍推荐《C/C++代码调试艺术

在编程中,调试代码比写代码往往会花费更多的时间,有时候一个bug就要调上个几天。本书从基础调试到高级的调试方法都有讲解,掌握有效的调试方法能给我们节省更多的时间。单线程的程序调试、多线程死锁调试、动态库调试、内存检查、dump文件分析、windows平台远程linux调试、linuxGDB调试、release版调试都有讲解。同时,书籍里也有代码示例并可通过git下载,VS2022的一些调试新特性也有介绍。书籍里图文并茂。

Sun 867

[原创](现代C++ Builder 12指南): 如何使用异常(try catch)?

在现代C++开发中, 异常处理是一种强大的错误管理机制, 它能够有效分离正常业务逻辑与错误处理代码, 提高代码的可读性和可维护性. C++ Builder 12作为一个成熟的开发环境, 提供了完善的异常处理支持, 能够优雅地处理程序运行时可能出现的各种错误情况.

其实我不是代码教父,我只是猪头三 534

c++代码调试艺术

第二部分指出了这块堆内存是在第15行进行分配的,同样显示了栈信息,报告中还包含了内存数据等(图6-17中未显示)。在6.1节中,我们可以在Windows系统中使用VC++很方便地发现代码中的内存泄漏问题,同样,在Linux系统中我们也希望能够比较方便地发现内存泄漏的问题,并且能够准确地指出内存泄漏的代码行。在代码清单6-10中,函数heap_buffer_overflow_test分配了一个10字节内存,然后向其中复制超过10字节的内容,编译链接后执行,结果如图6-17所示。其实gcc也具备这样的能力。

melonbo的专栏 921

让代码优雅起来(学会调试+代码风格)

🍁本篇介绍如何写出好的代码,从代码风格和实用调试技巧出发,代码的风格虽然不会对程序的运行造成影响,但好的代码风格可以让我们的代码逻辑更加的清晰,而学会调试程序对一个程序员来说更是非常重要的,我们写出的代码应当是易于调试的,好的代码可以避免很多不必要的麻烦,节省我们的时间!.........

trong_ 的烂笔头 1万+

C++BuilderC++的扩展

C++BuilderC++的扩展    C++Builder完全兼容标准C++,标准C++是一个大而广泛的类和函数的集合,这个标准由国际标准化组织(ISO)与美国国家标准委员会(ANSI)共同指定。此标准具有广泛的权威性,一般的开发工具都完全支持它。C++Builder包含了C++,同时又扩展了C++。它在以下几方面增强了C++。   3.4.1 动态函数 动态函数是C++

qq_31209383的博客 1021

有效提高C++ Builder程序质量

有效提高C++ Builder程序质量英雄C、C++ (2003-10-31 11:29:56)    程序的bugs越少,程序的评价越高。我们介绍一些调试程序时“应该做”或“不应该做”的原则。写易读的代码:大概也是最重要的一点,就是写干净易读的代码。  使用Exceptions和Exception的处理方法:开发人员不可能总是依靠于集成的调试工具。所以,学会用其它的方法来找到

~~Jason 程序人生~~ 2385

[C++]异常处理,你不会不清楚吧

文章目录异常概念:C语言中处理错误的方式:C++异常:异常的某些规则异常可以重新抛出异常规范异常安全:C++库的异常体系 异常概念: 异常是C++引入的一种新的处理错误方式,当函数发现一个自己无法处理的错误的时候,就会抛出异常,交给函数调用者进行处理 C语言中处理错误的方式: 1.使用断言assert() 进行判断 2.返回错误码 C++异常: C++中引入了三个关键字throw ,catch, try 来支持异常 throw: 当出现错误,进行抛出的时候,是使用throw完成的 catch: 在可能出

这是书生呀 291

C++ BuilderXE复制AdvStringGrid表格被选择区域数据

复制AdvStringGrid表格被选择区域数据

lzksword的专栏 350

c++ builder 控制台类 辅助调试

//如果你想在调试窗口程序时有个控制台,方便调试,本文也许能解决你的烦恼。 //本程序调试通过。 //1.新建立个窗体程序,在画面上放3个按钮,button1,button2,button3. //2.建立个类文件,将最下面的类文件粘贴过去。 //3.窗体的头文件里,添加这一行#include "Unit2.h" //4.在窗体头文件里添加个TConsoleWindow类型的变量,比如TConsoleWindow console; //5.button1程序里添加如下: char st...

weixin_39926429的博客 666

C++调试技巧全解析:掌握这5种方法让你效率提升300%

掌握高效C++调试技巧,快速定位并解决程序错误。涵盖断点调试、日志追踪、内存检测等5大实用方法,适用于复杂项目与多线程场景,显著提升开发效率。方法简单易上手,值得收藏。

DeepNest的博客 349

C++:Debug and Release 输出控制

本篇博客一个使用的方式来配置代码的与版本之间的差异。建议为每一个文件都配备单独的宏,方便进行更细粒度的控制。

fishwheel的博客 1085

C++Builder中的异常传递

以HTTP GET为例,需要去服务器获取网页内容,为防止出错,重试3次,在最后一次重试失败时才抛出异常,前两次的异常我们都会忽略。在C#中通常这样处理:for(int i=0;i<3;i++){try{ ...}catch(Exception e){ if(i==2) throw e;}}有几年没用C++Builder了,当我把这段代码搬到C++Build...

weixin_34380781的博客 406

C++ 异常处理

异常处理    C++Builder支持C++异常处理、基于C的结构异常处理以及VCL异常处理。    注意 本章中所用的关于C++异常处理及结构异常处理的例子通过命令行使用bcc32.exe可成功地编译并运行,而不是使用IDE。在调用标准C++例程及对象时可用C++异常处理。    VCL异常处理可在IDE内进行。实际上,尽管C++Builder支持C++异常处理和基于C的结构异常处理。但使用C

叮叮福 1205

[转载]有效提高C++ Builder程序质量(一)

原著:英雄程序的bugs越少,程序的评价越高。我们介绍一些调试程序时“应该做”或“不应该做”的原则。写易读的代码:大概也是最重要的一点,就是写干净易读的代码。  使用Exceptions和Exception的处理方法:开发人员不可能总是依靠于集成的调试工具。所以,学会用其它的方法来找到烦人的bugs是很重要的。一些重要的、处理的错误可能会在窗体之外发生。在C++标准制定出来之前的黑暗日子里,在程序

游乐园 1302

C++ 它说 try, catch, 和 finally

C++ 中,`try`, `catch`, 和 `finally` 关键字通常不是标准的 C++ 语法。C++ 使用 `try` 和 `catch` 来处理异常,但没有 `finally` 块。在这个例子中,`try` 块包含可能引发异常的代码。尽管 C++ 没有 `finally` 关键字,但在资源管理方面,C++ 提供了 RAII(资源获取即初始化)的机制,允许我们使用对象的生命周期来管理资源,以确保在离开作用域时资源得到释放,类似于 `finally` 块的功能。

bluelace25的专栏 2283

C++异常处理 - try,catch,throw,finally的用法

      写在前面   所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题.   异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制.   也许我们已经使用过异常,但是你习惯使用异常了吗?   现在很多软件都是n*365*24小时运行,软件的健壮性至关重要.  内容导读 本文包括2个大的异常实现概...

weixin_34194359的博客 602
上一篇: [转载]有效提高C++ Builder程序质量(二)
下一篇: [转载] eico studio Win Vista 图标设计教程
Rex_love_Burger
博客等级 码龄23年 13粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值