AIDE 中文文档 下载 App

单步执行——一步一行看清代码怎么走

断点停住后

程序在断点行暂停后,调试工具栏出现三个核心按钮:

按钮名称作用
向下箭头(越过)Step Over执行当前行,不进入内部
向右箭头(进入)Step Into进入当前行的方法调用内部
向上箭头(跳出)Step Out在方法内部时,跳出去

Step Over(单步越过)

执行当前行代码。如果这行是一个方法调用,不进入方法内部,直接跳到下一行。

什么时候用:

// Step Over 演示
public void onClick(View v) {
    User user = fetchUser();      // ← Step Over:fetchUser() 完整执行完,不进去
    updateUI(user);               // ← Step Over:updateUI() 完整执行完
}

Step Into(单步进入)

执行当前行,如果这行包含方法调用,进入那个方法的内部,停在方法的第一行。

什么时候用:

// Step Into 演示
public void onClick(View v) {
    User user = fetchUser();      // ← Step Into:进入 fetchUser() 方法内部
    // 此刻你在 fetchUser() 的第一行
}

Step Out(单步跳出)

当你在某个方法内部时,Step Out 会继续执行完当前方法剩余的所有代码,然后回到调用这个方法的位置,停在那里。

什么时候用:

// Step Out 演示
User fetchUser() {
    int id = getUserId();         // Step Into:进了 getUserId()
    // ... 看完了
    return database.query(id);    // Step Out:从 getUserId() 跳出来,回到 fetchUser()
}

实战示例

调试一个"按钮点击后没反应"的问题:

1. 在 Button.OnClickListener 的 onClick() 里设断点
2. Debug 启动 → 点击 Button → 断点停住
3. Step Into 进入 onClick()
4. Step Over 逐行走,看看每一步是否按预期执行
5. 如果有某个方法返回值不对 → Step Into 进去看那个方法内部
6. 找到变量值异常的位置 → 看 [变量检查] 面板
7. 修正代码 → 重新 Debug