当前位置:网站首页 > 技术博客 > 正文

vs2010断点调试



目录

1 断点调试

1.1 断点调试介绍

1.2 如何设置断点

1.3 如何开启调试       

2 调试类型

2.1 逐断点调试

2.2 逐过程调试

2.3 单步调试

2.4 单步跳出


        遇到难以捉摸的软件错误时,老练的程序员会推荐断点调试。通过设置断点,逐步跟踪程序执行,实时查看变量状态,轻松定位并揭露错误根源。这一技巧如同放大镜,让隐藏的问题无所遁形,确保软件质量。

        断点调试是一种强大的程序调试技术,它允许开发者在程序的特定行设置一个“断点”当程序执行到这些预设的断点时,会自动暂停运行。这一机制使得开发者能够逐步(单步执行)跟踪程序的执行流程,同时实时查看和检查程序中各个变量的当前值。如果在调试过程中遇到错误或异常,程序会在出错的具体代码行停止,直接指向问题所在,从而大大简化了错误定位和问题分析的过程。通过这种方式,开发者可以更加高效地识别和解决程序中的 Bug,优化代码质量,提升程序的稳定性和性能。

        VS Code中,在代码行号的前面单击即可添加断点,再次点击可以取消断点; 或者使用快捷键 F9,会给光标所在行添加或取消断点。

        点击如下图所示的按钮开启调试模式,或使用快捷键 F5。

        启动调试之后,当程序执行到这些预设的断点时,会自动暂停运行,断点所在行表示该行还未得到执行,等待开发者进一步的操作指令,如下图所示:


        在 VS Code 中,调试可分为逐断点(继续 F5)逐过程(F10)、单步调试(F11)、单步跳出(Shift + F11),以下面这个程序为例:

 

      如下图所示,打上相应的断点:

        功能:逐断点调试(继续调试,F5)操作会在当前断点处启动或恢复程序的执行,直到遇到下一个断点或程序正常结束。如果当前没有断点或者后续没有断点,程序将直接执行到结束。

        使用场景:当已经检查过当前断点处的代码,并希望继续执行到下一个断点以查看后续代码的执行情况时,可以使用继续调试。

        操作演示:程序调试的初始状态如上图所示,下面点击继续按钮(快捷键 F5),结果如下图所示:

        功能:逐过程调试(F10)是从断点开始逐行执行代码,执行一条语句就暂停一次,但如果当前行包含函数调用,调试器将不会进入该函数内部,而是直接执行该函数并跳转到下一行代码。这种方式适用于不需要深入函数内部细节,只关心函数返回结果或外部影响的场景。

        使用场景:当想要快速遍历代码,跳过不感兴趣的函数内部实现时,可以使用逐过程调试。

        操作演示:程序调试的初始状态如上文所示,下面点击逐过程按钮,结果如下图所示:

        功能:单步调试(F11)允许逐行执行代码,并且在遇到函数调用时,会进入该函数内部进行逐行调试。这种方式适用于你需要深入函数内部,查看其执行过程和变量状态的情况。

        使用场景:当需要详细了解函数内部逻辑,或者排查函数内部可能存在的问题时,可以使用单步调试。

        操作演示1:程序调试的初始状态如下所示:

        下面点击单步调试按钮(快捷键 F11),结果如下图所示:

        操作演示2:程序调试的初始状态如下所示:

        下面点击单步调试按钮(快捷键 F11),结果如下图所示:

        功能:单步跳出(Shift + F11)操作在已经使用单步调试进入函数内部后,允许退出当前函数,并继续执行函数外部的代码。这将使程序执行到当前函数的返回语句,并返回到函数被调用的地方。

        使用场景:当已经完成了对函数内部逻辑的调试,并希望继续执行函数外部的代码时,可以使用单步跳出。

        操作演示:程序调试的初始状态如下所示:

        下面点击单步跳出按钮(快捷键 Shift + F11),结果如下图所示:

版权声明


相关文章:

  • opencvfindcontours2024-11-08 11:01:01
  • 胖熊胖太三部曲2024-11-08 11:01:01
  • 大小端区别2024-11-08 11:01:01
  • android动态编译2024-11-08 11:01:01
  • cname与a记录2024-11-08 11:01:01
  • 小米手机解锁bootloader教程2024-11-08 11:01:01
  • linux各版本的区别2024-11-08 11:01:01
  • c 三维数组2024-11-08 11:01:01
  • 微信小程序回调2024-11-08 11:01:01
  • tinyxml读取xml2024-11-08 11:01:01