> For the complete documentation index, see [llms.txt](https://gaoge011022.gitbook.io/missing-necessary-knowledge-for-cs-students/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gaoge011022.gitbook.io/missing-necessary-knowledge-for-cs-students/ji-chu-zhi-shi/tiao-shi/breakpoint-debugging.md).

# 断点调试

在多数情况下，你应该使用断点调试，而不是简单地向终端打印一堆调试信息。

![在 VS Code 中使用断点调试](https://1383251095-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSBZ7iRcgEfJ0mS6HCTWK%2Fuploads%2Fgit-blob-11dead8710c295d8a39f2077789242ba91a5adfa%2Fdebugging-python.png?alt=media)

上图展示了使用 VS Code 在 Python 中断点调试的一般流程：在行号前面单击打上“断点”，然后以调试模式运行程序（在 VS Code 中默认是 F5），就可以看到代码在运行到断点前被中断了，这时你可以看到当前程序中保存的变量、栈帧等信息——你不需要使用`print`语句，并且能够看到调试信息更加友好的表示形式。在调试模式运行的过程中，你可以看到编辑器/IDE 中会出现一个工具条。

红框圈出来的两个按钮从左到右分别是“单步跳过”与“单步调试”。点击“单步跳过，程序将直接运行当前行，并跳过这一行；而点击”单步调试“，如果这行语句调用了其他函数或方法等，会”跳入“所调用的函数中，让你进一步调试被调用函数的代码。不过在上面的示例中，由于这里没有调用什么其它函数，因此这两个按钮的作用是相似的。

善用断点调试可以有效帮助你提升修复 BUG 的效率，并且可以避免代码中大量乱糟糟的`print`出现。
