如何使用代码调试?
牛客编程页现在已经支持代码调试功能(debug),帮助您轻松调试、修正错误。
🎉 🎉 🎉
什么是代码调试?
在开发过程中,你的代码可能包含逻辑错误、输出不符合预期等情况,如果没有调试工具,这些错误比较难于发现。
断点调试是最重要的调试技术之一,你可以通过调试器执行至任何你想要暂停的代码行,且可以在代码执行时检测变量、查看程序的执行流程。
e.g. 查看代码变量状态、查看断点处的调用堆栈
「牛客代码调试器」支持:
代码中任意设置断点,单步调试
添加“表达式”,跟踪表达式数值
如何使用「牛客代码调试器」?
功能入口:编程做题页>代码调试
1. 设置断点
「断点」是程序执行到达指定字符串时触发的命令。 该命令停止该字符串的执行。 断点允许检查指定代码区域中的程序行为: 查看变量值和函数堆栈。 随后,调试过程可以恢复或终止。
在启动调试之前,在程序代码中至少设置一个断点。请点击代码行左侧的区域,设置断点。
2. 启动调试
调试之前,您需要编写输入数据后,才可进行调试。
您可以自行编写输入数据或点击载入示例数据。
点击启动调试模式。
在此模式,调试程序正在编译您的代码,需要编译通过后才可开始调试流程。
3. 开始调试
一旦程序在调试模式下一行到断点,它就会暂停。
暂停执行的行会红色高亮,如下的第3行:
在编辑器顶部,有一个调试工具栏:
开始调试-Start debug ,启动调试过程,开始运行程序,直到第一个断点;
执行下一个断点 Continue ,运行至下一个断点;
单步跳过 Step over ,程序执行下一行单步进入被调用函数;
单步调试- Step in ,程序执行下一行并进入被调用的函数;
单步跳出- Step out ,程序执行完被调用函数,并返回到上一层函数;
重新执行-Restart ,重新开始调试。
4. 变量/监听
在调试过程中,可以在当前程序执行步骤中跟踪各种表达式(变量)的值。左侧变量/表达式展示台显示相应的结果。
如果要跟踪表达式数值,可以将变量/表达式添加在「监听」中:
点击
在新出现的行,输入表达式或变量名
回车生成表达式名称
5. 暂停、结束、退出调试
当执行程序抵达带有断点的代码行时,程序就会自动暂停。您也可以手动管理:
暂停执行
调试中,可点击调试工具栏中的 手动暂停程序执行。暂停后,可以继续执行单步执行命令。
停止调试
如您想要编辑代码、切换语言或完成调试,可点击调试工具栏中的 或 输入输出台中的 停止调试。
退出调试
如您已经完成整个调试、排错流程,可点击左上角的或右上角的图标退出调试模式,返回看题。
支持的语言及版本
「牛客代码调试器」目前支持5种语言,未来将持续支持更多语言。
语言
版本
C++
clang++11
C
clang11
Java
javac 1.8
Python
2.7.3
Python3
3.9
JavaScript
Node 12.18.2
GO
1.14.4
Rust
1.44
PHP
7.4.7
Typescript
4.1.2
Ruby
2.7.1
Kotlin
1.4.10
Swift
5.3
常见问题❓
1. 找不到「代码调试」
「牛客代码调试器」现在仅支持算法题和部分语言(请看“支持的语言及版本”)
请确保您当前是在“练习”模式下
2. 无法开始调试
如您遇到无法开始调试的情况,请确保:
您已在代码中设置断点
您已经输入数据
您的代码已通过编译
3. 无法编辑代码
在调试执行程序时,无法编辑代码,请停止调试后编辑您的代码。
4. 其他问题
如在调试过程中遇到其他问题,请在下方评论区反馈,并且带上:
题目链接
调试代码
问题描述
我们将尽快给您回复。
打造「牛客代码调试器」的初衷是希望大家能更顺利的编码,体验编程的乐趣。
当然,调试器有不够完美的地方,欢迎大家在评论区或加入QQ群(460237008)给出宝贵的意见。我们将携着大家的意见,持续优化debug体验。
谢谢大家一直以来的支持与耐心