Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions 1.4.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,12 @@ In order to improve the efficiency of debugging, but also as an exercise to fami

<!-- | 命令 | 格式 | 使用举例 | 说明 |
| --- | --- | --- | --- |
| 帮助(1) | `help` | `help` | 打印命令的帮助信息 |
| 继续运行(1) | `c` | `c` | 继续运行被暂停的程序 |
| 退出(1) | `q` | `q` | 退出NEMU |
| 帮助(@) | `help` | `help` | 打印命令的帮助信息 |
| 继续运行(@) | `c` | `c` | 继续运行被暂停的程序 |
| 退出(@) | `q` | `q` | 退出NEMU |
| 单步执行 | `si [N]` | `si 10` | 让程序单步执行`N`条指令后暂停执行, <br>当`N`没有给出时, 缺省为`1` |
| 打印程序状态 | `info SUBCMD` | `info r`<br>`info w` | 打印寄存器状态<br>打印监视点信息 |
| 扫描内存(2) | `x N EXPR` | `x 10 $esp` | 求出表达式`EXPR`的值, 将结果作为起始内存<br>地址, 以十六进制形式输出连续的`N`个4字节 |
| 扫描内存(@@) | `x N EXPR` | `x 10 $esp` | 求出表达式`EXPR`的值, 将结果作为起始内存<br>地址, 以十六进制形式输出连续的`N`个4字节 |
| 表达式求值 | `p EXPR` | `p $eax + 1` | 求出表达式`EXPR`的值, `EXPR`支持的<br>运算请见[调试中的表达式求值](./1.6.md)小节 |
| 设置监视点 | `w EXPR` | `w *0x2000` | 当表达式`EXPR`的值发生变化时, 暂停程序执行 |
| 删除监视点 | `d N` | `d 2` | 删除序号为`N`的监视点 | -->
Expand All @@ -105,8 +105,8 @@ See the chapter [Expression evaluation in debugging](./1.6.md). |
| Deleting a watchpoint | `d N` | `d 2` | Deletes the watchpoint with ID `N`. |

<!-- 备注:
* (1) 命令已实现
* (2) 与GDB相比, 我们在这里做了简化, 更改了命令的格式 -->
* (@) 命令已实现
* (@@) 与GDB相比, 我们在这里做了简化, 更改了命令的格式 -->
Remarks:

* (1) The command has been implemented already.
Expand Down
2 changes: 1 addition & 1 deletion 3.2.md
Original file line number Diff line number Diff line change
Expand Up @@ -791,7 +791,7 @@ This is because the `__am_irq_handle()` function in CTE did not correctly identi
According to the definition of `yield()`, the `__am_irq_handle()` function needs to package the trap event into an event with the number `EVENT_YIELD`.

<!-- > #### todo::识别自陷事件
> 你需要在`__am_irq_handle()`中通过异常号识别出自陷异常, 并打包成编号为`EVENT_YIELD`的自陷事件.
> 你需要根据`yield()`触发自陷异常时的异常号和其他状态(若有), 并打包成编号为`EVENT_YIELD`的自陷事件.
> 重新运行`yield test`, 如果你的实现正确, 你会看到识别到自陷事件之后输出一个字符`y`. -->

> #### todo::Identify the Trap Event
Expand Down