diff --git a/nemu/src/monitor/sdb/addrexp.l b/nemu/src/monitor/sdb/addrexp.l index cb7dea4..137d042 100644 --- a/nemu/src/monitor/sdb/addrexp.l +++ b/nemu/src/monitor/sdb/addrexp.l @@ -5,8 +5,8 @@ %% -0[xX][0-9a-fA-F]+ { yylval = strtol(yytext, NULL, 16); return HEX_NUMBER; } -[0-9]+ { yylval = atoi(yytext); return NUMBER; } +0[xX][0-9a-fA-F]+ { yylval = strtoul(yytext, NULL, 16); return HEX_NUMBER; } +[0-9]+ { yylval = strtoul(yytext, NULL, 10); return NUMBER; } [+\-*/()] { return *yytext; } [ \t] { } . { printf("Unexpected character: %s\n", yytext); } diff --git a/nemu/src/monitor/sdb/addrexp.y b/nemu/src/monitor/sdb/addrexp.y index e4fc777..d0dc734 100644 --- a/nemu/src/monitor/sdb/addrexp.y +++ b/nemu/src/monitor/sdb/addrexp.y @@ -4,7 +4,7 @@ #include extern int yylex(void); void yyerror(uint32_t *result, const char *err) { - // fprintf(stderr, "Error: %s\n", err); + fprintf(stderr, "Error: %s\n", err); } %}