@@ -125,7 +125,9 @@ SimpleDebugger::SimpleDebugger(Params& params) :
125125 " \t 'watch' creates a default watchpoint that breaks into an interactive console when triggered\n "
126126 " \t 'trace' creates a watchpoint with a trace buffer to trace a set of variables and trigger an <action>\n "
127127 " \t Available actions include: \n "
128- " \t interactive, printTrace, checkpoint, set <var> <val>, printStatus, or shutdown" },
128+ " \t interactive, printTrace, checkpoint, set <var> <val>, printStatus, or shutdown"
129+ " \t Note: checkpoint action must be enabled at startup via the '--checkpoint-enable' command line option\n "
130+ },
129131 { " watch" , " <trigger>: adds watchpoint to the watchlist; breaks into interactive console when triggered\n "
130132 " \t Example: watch var1 > 90 && var2 < 100 || var3 changed" },
131133 { " trace" ,
@@ -645,6 +647,22 @@ SimpleDebugger::cmd_run(std::vector<std::string>& tokens)
645647 return ;
646648 }
647649 }
650+ else if (tokens.size () == 3 ) {
651+ std::string time = tokens[1 ] + tokens[2 ];
652+ try {
653+ TimeConverter* tc = getTimeConverter (time);
654+ std::string msg = format_string (" Running clock %" PRI_SIMTIME " sim cycles" , tc->getFactor ());
655+ schedule_interactive (tc->getFactor (), msg);
656+ }
657+ catch (std::exception& e) {
658+ printf (" Unknown time in call to run: %s\n " , time.c_str ());
659+ return ;
660+ }
661+
662+ }
663+ else if (tokens.size () != 1 ) {
664+ printf (" Too many arguments for 'run <time>'\n " );
665+ }
648666
649667 done = true ;
650668 return ;
0 commit comments