多使用调用堆栈调试VC++代码

简介:

时间再紧,还是记一下吧!记下小成功与小失败,继续往前。


 故事

 近一天多时间,(其实在前几天中就隐约出现这个BUG,只是当时没有系统地或者频繁地调试运行故没有发现)被一个BUG折磨得够呛!


  现在归纳来看,根本原因还是自己对于开发工具不熟练。今天再次出现这个BUG,因为代码太长了,没有办法,只得大致根据代码执行流程及自己的经验分析诊断。


  今天休息间(临时被BUG折磨,只得休息一下!),忽然想起以前曾经有几次观察过调用堆栈的事情。于是,抓紧时间试一下,果然成功----一只很大的BUG被挖出来了!


 总结


  犯上述错误原因主要在于:代码非常长(近5000行),而且反复修改,有时很多内容无意间修改不完全(这是一种典型的无意间,而且很多人都会出现的错误),导致后期浪费大量时间。


  结论之一是:以后多多使用系统提供的“重构”功能(如今的我使用的VS2012集成开发环境这方面支持个人感觉已经非常优秀),甚至对于较长的子函数也尽可能使用,从而最大限度地避免上述问题!(有时候,个人有些骄傲,在较长函数内部修改就不使用“重构”了!正是这种原因导致上述BUG。)


  结论之二是:出现系统运行错时,多多使用调用堆栈。如今的调用堆栈能够帮助你最近地靠拢出现BUG的源码处,VERY GOOD!看看我的这个截图吧。

wKioL1QH5UvTGqyHAAEqzDQm034210.jpg

只要双击相应的调用堆栈中那一行,源码立即出现在面前。几乎第一时间就帮助你抓住BUG了!

  










本文转自朱先忠老师51CTO博客,原文链接: http://blog.51cto.com/zhuxianzhong/1548665,如需转载请自行联系原作者




相关文章
|
8月前
|
存储 NoSQL 安全
【C++调试】深入探索C++调试:从DWARF到堆栈解析
【C++调试】深入探索C++调试:从DWARF到堆栈解析
394 1
|
8月前
|
安全 程序员 C++
bug的定义以及VS调试方法
bug的定义以及VS调试方法
206 1
|
8月前
|
Windows
86/88汇编代码的运行调试
86/88汇编代码的运行调试
52 0
|
8月前
|
Linux C++
【代码片段】Linux C++打印当前函数调用堆栈
【代码片段】Linux C++打印当前函数调用堆栈
239 0
|
Java Linux 测试技术
《深入理解Java虚拟机》读书笔记(三)--堆栈异常代码示例
《深入理解Java虚拟机》读书笔记(三)--堆栈异常代码示例
123 0
|
存储 运维 安全
基于VS调试分析 + 堆栈观察问题代码段
面对眼前两段有问题的代码,你会通过什么去解决这个问题?本文将通过调试进行逐步分析💻,带你步步观察程序的运行逻辑
21399 0
基于VS调试分析 + 堆栈观察问题代码段
|
编译器 C语言
C程序调试过程常见的错误
在C语言编程,一般需要借助C相关的编译软件,例如,在Keil uVision5编程环境下,如果提示工具连接错误,则表示MDK安装程序有问题,重新卸载,并全部删除后重新再进行安装后即可。
|
Java 编译器 C++
JNI编程怎么跟踪调试dll?
本文主要讲解一下在jni开发中,如何调试C/C++编写的DLL模块。
477 0
JNI编程怎么跟踪调试dll?
|
算法 IDE Java
还在断点调试?4种调试技巧让你快速定位错误!
九章算法金牌讲师、前FB资深架构师令狐冲总结了4种调试技巧,帮你高效debug。
还在断点调试?4种调试技巧让你快速定位错误!