diff options
author | Mike Frysinger <vapier@gentoo.org> | 2015-06-04 23:59:00 +0800 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2015-06-04 23:59:00 +0800 |
commit | 66e1078e9dc6aa4139d91a8f00b7e4fe572129f4 (patch) | |
tree | 12d8986046667a6b582b8526af7fc6abc6e7f5d1 /riscv/interactive.cc | |
parent | 4a430f64c74dc3fd96843a76c09021a1a4cdfbcf (diff) | |
download | spike-66e1078e9dc6aa4139d91a8f00b7e4fe572129f4.zip spike-66e1078e9dc6aa4139d91a8f00b7e4fe572129f4.tar.gz spike-66e1078e9dc6aa4139d91a8f00b7e4fe572129f4.tar.bz2 |
add a help screen to interactive mode
There's no documentation that covers all the available functionality
(in source or the accompanied docs). Start a help command so that the
info is always live and up-to-date for people.
Diffstat (limited to 'riscv/interactive.cc')
-rw-r--r-- | riscv/interactive.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/riscv/interactive.cc b/riscv/interactive.cc index abdcc39..b18a6fa 100644 --- a/riscv/interactive.cc +++ b/riscv/interactive.cc @@ -61,6 +61,7 @@ void sim_t::interactive() funcs["until"] = &sim_t::interactive_until; funcs["while"] = &sim_t::interactive_until; funcs["q"] = &sim_t::interactive_quit; + funcs["h"] = &sim_t::interactive_help; while (!htif->done()) { @@ -91,6 +92,29 @@ void sim_t::interactive() ctrlc_pressed = false; } +void sim_t::interactive_help(const std::string& cmd, const std::vector<std::string>& args) +{ + std::cerr << + "Interactive commands:\n" + "reg <core> <reg> # Display <reg> in <core>\n" + "fregs <core> <reg> # Display single precision <reg> in <core>\n" + "fregd <core> <reg> # Display double precision <reg> in <core>\n" + "mem <hex addr> # Show contents of physical memory\n" + "str <hex addr> # Show NUL-terminated C string\n" + "until reg <core> <reg> <val> # Stop when <reg> in <core> hits <val>\n" + "until pc <core> <val> # Stop when PC in <core> hits <val>\n" + "until mem <addr> <val> # Stop when memory <addr> becomes <val>\n" + "while reg <core> <reg> <val> # Run while <reg> in <core> is <val>\n" + "while pc <core> <val> # Run while PC in <core> is <val>\n" + "while mem <addr> <val> # Run while memory <addr> is <val>\n" + "r [count] # Resume noisy execution (until CTRL+C, or [count] insns)\n" + "rs [count] # Resume silent execution (until CTRL+C, or [count] insns)\n" + "q # End the simulation\n" + "h # This screen!\n" + "Note: Hitting enter is the same as: run 1\n" + << std::flush; +} + void sim_t::interactive_run_noisy(const std::string& cmd, const std::vector<std::string>& args) { interactive_run(cmd,args,true); |