本文目录导读:

我来详细介绍一下代码调试的操作方法,从基础到进阶:
调试的基本准备
工具准备
- IDE调试器:VS Code、PyCharm、IntelliJ IDEA等内置调试器
- 浏览器调试工具:Chrome DevTools(前端调试)
核心调试操作步骤
设置断点
# 在代码行号处点击,出现红色圆点
def calculate():
x = 10 # [断点] 点击行号处
y = 20 # [断点]
result = x + y
print(result)
启动调试
- VS Code:按
F5或点击绿色三角形 - 浏览器:按
F12→ Sources → 点击行号
控制执行流程
| 操作 | 快捷键 (VS Code) | 作用 |
|---|---|---|
| 继续 | F5 |
运行到下一个断点 |
| 单步跳过 | F10 |
执行当前行,不进入函数 |
| 单步进入 | F11 |
进入函数内部 |
| 单步跳出 | Shift+F11 |
跳出当前函数 |
| 重启 | Ctrl+Shift+F5 |
重新开始调试 |
| 停止 | Shift+F5 |
结束调试 |
观察变量状态
查看变量值
# 调试时可以在调试面板查看: name = "张三" # 显示: name = "张三" age = 25 # 显示: age = 25 scores = [90, 85, 88] # 显示: scores = [90, 85, 88]
添加监视表达式
- 在监视窗口输入:
len(scores) - 查看表达式:
age > 18
实战示例
Python调试示例
def divide_numbers(a, b):
print(f"计算 {a} 除以 {b}")
result = a / b # 设断点,观察a、b的值
return result
def main():
numbers = [10, 20, 0, 30]
for i, num in enumerate(numbers):
try:
result = divide_numbers(100, num) # 断点在这里
print(f"结果: {result}")
except ZeroDivisionError:
print(f"错误:第{i+1}个数不能为0")
if __name__ == "__main__":
main()
JavaScript调试示例
// 在浏览器中调试
function fetchUserData(userId) {
console.log('开始获取用户数据'); // 断点
const url = `https://api.example.com/users/${userId}`; // 断点:查看url生成是否正确
fetch(url)
.then(response => {
console.log('收到响应:', response.status); // 断点:检查HTTP状态码
return response.json();
})
.then(data => {
console.log('用户数据:', data); // 断点:查看返回数据
displayUser(data);
})
.catch(error => {
console.error('错误:', error); // 断点:捕获异常
});
}
高级调试技巧
条件断点
# 只在特定条件触发时暂停
for i in range(100):
# 右键断点,设置条件:i == 50
print(f"当前值: {i}") # 只有i=50时才会暂停
日志断点(不暂停)
- 打印日志但不中断程序执行
- 适用于循环中的调试信息
常见调试场景
场景1:数组越界
def find_element(arr, target):
for i in range(len(arr) + 1): # 错误:范围过大
if arr[i] == target: # 断点:观察i的值
return i
return -1
场景2:空指针/null引用
class User:
def __init__(self, name):
self.name = name
def process_users(users_list):
for user in users_list:
print(user.name) # 断点:检查user是否为None
调试技巧总结
调试前
- 复现问题:确认bug能稳定复现
- 缩小范围:定位到出错的代码段
- 设置合适的断点
调试中
- 观察变量变化:重点跟踪关键变量
- 检查调用栈:了解函数调用路径
- 使用条件断点:节省调试时间
调试后
- 记录解决方案:避免重复踩坑
- 编写测试用例:确保修正确实有效
- 代码审查:检查是否引入新问题
调试快捷键汇总
| 平台 | 继续执行 | 单步跳过 | 单步进入 | 单步跳出 |
|---|---|---|---|---|
| VS Code | F5 | F10 | F11 | Shift+F11 |
| PyCharm | F9 | F8 | F7 | Shift+F8 |
| Chrome | F8 | F10 | F11 | Shift+F11 |
| IntelliJ | F9 | F8 | F7 | Shift+F8 |
学习建议
- 从小项目开始:先在简单代码上练习
- 多用断点:不要只用print调试
- 学会读堆栈:错误堆栈信息很有价值
- 善用分支调试:针对特定代码路径
调试不是找错,而是理解代码如何运行,熟练使用调试器能让你更快定位问题,更深入理解代码逻辑。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播