随想录(软件调试)(2)

2021-04-06 07:38

1.

2.

3.

4.

5.

6.

7.

8.

9. void print_function_addr(int ebp, int level) { int* start; int index; if(0 == ebp || 0 == level) return; start = (int*)ebp; index = 0;

10. while(index < level){

11. printf("[%d] 0x%08x\n", index, start[1]);

12. index ++;

13. start = (int*)start[0];

14. }

15. }

(5)日志和计数器

依靠系统本身的调试软件当然是不够的,所以为了看清数据的运行流程,我们还需要获得一些额外的调试信息了。所以,对于业务而言,我们需要按照告警、错误、数据格式分别进行日志保存。当然,有时候我们还要对业务性能、频率进行衡量和比较,所以很多时候计数器也是必不可少的。这些信息都是正常代码之外的额外信息,所以处理好他们和普通代码之间的关系也是一门大学问。同时,日志有时还要受到多线程、效率、异常等因素的影响,所以思考和执行的时候一定要顾虑周全。

(6)调试原则

这些调试原则只是我个人的一些经验总结,谈不上真知灼见,仅供大家参考。1)先排除硬件,后软件。特别高频信号要注意时序和信号完整性;2)软件设计大于调试;3)软件早调试早得益;4)复杂的功能调试可以在仿真软件上进行,比如说全局地址越界等,使用gdb的条件断点调试就十分方便,在嵌入式设备上查找却十分困难;5)尽量自己编写调试函数,不断改进和优化处理,用得也顺手;6)日志模块要健壮,尤其要适合多线程处理;7)定位故障一定要寻找到根本原因,否则极易生成新的故障。


随想录(软件调试)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:单片机为核心的开关磁阻电机调速系统设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: