如何调试和测试刚写的程序?

本文讲述了IT开发中的调试技巧,涉及编译器如MSVC、GCC、G++,以及使用GDB定位运行错误的方法。同时介绍了测试的重要性,特别是使用gtest进行单元测试,强调了编写高质量代码的原则——高内聚低耦合。
摘要由CSDN通过智能技术生成

看到《左耳听风-练级攻略》心血来潮,想写下这问题,后续可能还会更新。

1.调试

调试的目的是能够正确地编译、运行并实现预定功能。

使用过的编译器有msvc/gcc/g++,编译工具有make/bazel。编译就是生成目标文件,常出现的编译问题比如有未定义、重复定义、找不到声明。出现这些问题通常可以查阅网站博客(比如CSDN、博客园、stack overflow等)和官方文档解决。

编译通过后常出现的运行错误有段错误(segment fault)等。一般可以通过gdb定位原因;如果定位不到,可以通过打印日志、分段注释可疑代码来定位。

在编译正确和正常运行后如果还没有实现预定的功能,可以重新审视代码,通过打印日志、gdb调试定位原因。

调试相关博客总结

  • segment fault相关:

https://www.cnblogs.com/wpgraceii/p/10622582.html

https://www.cnblogs.com/wahaha02/p/8034112.html

2.测试

测试的目的是确定实现预定功能。(这里的测试指功能测试,也就是开发者自测)

使用过的测试框架有gtest。开发者测试一般为单元测试,指开发者对具体函数或者具体处理流程进行测试。对于外界提供的接口可以mock掉,专注于所开发代码的数据验证,确定开发函数或流程功能是否符合预期。

好测试的前提是好代码,这是需要设计的。基本原则是高内聚低耦合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清明谷雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值