本实验目的是实现一个类似GDB的简易调试器
已实现命令--help, c, q
这次实现了si, info。如图:
单步执行:
(添加指令和对应描述过程略)
首先完成单步执行命令,包括两个参数--代表单步执行命令的si与需要执行指令个数N
参考cmd_help读取第二个参数的写法:
static int cmd_help(char *args) {
/* extract the first argument */
char *arg = strtok(NULL, " ");
int i;
if (arg == NULL) {
/* no argument given */
for (i = 0; i < NR_CMD; i ++) {
printf("%s - %s\n", cmd_table[i].name, cmd_table[i].description);
}
}
else {
for (i = 0; i < NR_CMD; i ++) {
if (strcmp(arg, cmd_table[i].name) == 0) {
printf("%s - %s\n", cmd_table[i].name, cmd_table[i].description);
return 0;
}
}
printf("Unknown command '%s'\n"