NUAA ICS 评分细则 PA1.2&1.3
⼀、操作题 (满分100分)
1. 编写匹配规则(1) (5分)
所有的正则表达式,不要分开写
2. 添加 p 命令 (5分)
编写cmd_p()
函数
3. 识别并存储 token (10分)
完善make_token()
函数
4. 实现括号匹配 (5分)
编写check_parentheses()
函数
5. 实现子表达式拆分 (5分)
编写find_dominated_op()
函数
6. 实现表达式求值 (15分)
编写eval()
函数;
测试⽤例:先贴当前info r
命令的截图,然后执⾏下列命令(每个运算符都要覆盖到, 自行设计更多测试样例)
p $eax
p $eip == 0x100000
p *0x100000
p *$eip
p 2 * ($eax + $ebx)
7. 实现指针解引用 (5分)
8. 实现负数 (加分项,5分)
9. 实现x命令使用表达式求值 (加分项,5分)
测试用例:当 eip = 0x100000 时,命令x 4 $eip
显示的结果与x 4 0x100000
相同
10. 监视点结构体 (5分)
11. 监视点池的管理 (10分)
WP* new_wp();
void free_wp(WP *wp);
12. 监视点加入调试器 (15分)
cmd_w()
函数、cmd_d()
函数、info w
命令
13. 监视点主要功能 (20分)
int set_watchpoint(char *e);
bool delete_watchpoint(int NO);
void list_watchpoint(void);
WP* scan_watchpoint(void);