VC++ CallStack调用堆栈应用(调试篇)

要想学习VC++快,多数人都会选择看视频教程或者学习前辈们的项目源码程序,通常我们是先看视频教程(比如:孙鑫老师的《VC++深入详解》),通过视频教程全面的学习,对VC++有个大致的了解,要想进步快,还得多动手写代码,我建议还是从自己比较感兴趣的项目入手,下载一个自己感兴趣的开源程序,这样学起来不至于那么枯燥。Microsoft Visual Studio给我们提供一个很好的IDE调试环境。“一个不懂得如何调试程序的程序员,永远不是一个合格的程序员,一个不会解决问题的程序员,永远不是一个优秀的程序员”。在程序源码的调试过程中,我们可以快速学到很多知识。调试其实是一件非常枯燥乏味的工作,有可能几小时或是几天在反复着同样一件事情,但是通过调试解决问题以后,你会发现自己能力上提高很多,结局是快乐的!可能这就是常说的“痛苦并快乐着!”吧。

掌握调试技巧,首先我们要熟悉几个快捷键:

  • F6: 生成解决方案
  • Ctrl+F6: 生成当前项目
  • F7: 查看代码
  • Shift+F7: 查看窗体设计器
  • F5: 启动调试
  • Ctrl+F5: 开始执行(不调试)
  • Shift+F5: 停止调试
  • Ctrl+Shift+F5: 重启调试
  • F9: 切换断点
  • Ctrl+F9: 启用/停止断点
  • Ctrl+Shift+F9: 删除全部断点
  • F10: 逐过程
  • Ctrl+F10: 运行到光标处
  • F11: 逐语句

熟练应用这些快捷键,而不要每次都去菜单栏或者右键菜单去鼠标点击。

项目实际开发过程中,并不总是一帆风顺的,有时候功能设计会与我们预期不一致,这个时候我们会在功能函数的地方设置断点,比如:

VC++ CallStack调用堆栈应用(调试篇)_第1张图片

左侧表示红色圆点的地方,就是我们通过F9设置的断点,而在最下方我们会看到一个窗口“调用堆栈”,用鼠标双击调用堆栈代码会跳转相应的代码行,这个调用堆栈就是我们函数依次执行的一个流程,我们可以查看历史流程中函数的变量参数值的信息,从而知道函数功能在发生异常之前的某个函数里面是否就已经发生了异常。

但是我们在发布程序的时候,程序功能异常的时候,我们并不能实时看到这个调用堆栈,那如何将这个调用堆栈记录下来便于后期功能发生异常的时候查阅呢,答案是肯定的。

类StackWalker:https://github.com/JochenKalmbach/StackWalker,具体应用请参考示例。

你可能感兴趣的:(VC++(日积月累篇))