Commands here are subject to change.
m springbok m qemu_clean qemu m renode_clean renode
Note: as we continually make changes to renode, will have to m renode_clean renode
to apply updates:
m renode_clean renode
qemu_sim_springbok ./out/springbok/test_vsetvl/test_vsetvl.elf
qemu_sim_springbok ./out/springbok/test_vsetvl/test_vsetvl.elf -s -S
Note, same as for Renode but with target remote :1234
riscv32-unknown-elf-gdb out/springbok/test_vsetvl/test_vsetvl.elf \ -ex "target remote :1234" \ -ex "layout split" \ -ex "b main" \ -ex "c"
riscv32-unknown-elf-gdb out/springbok/test_vsetvl/test_vsetvl.elf \ -ex "target remote :3333" \ -ex "monitor start" \ -ex "sysbus.cpu2 IsHalted False" \ -ex "layout split" \ -ex "b main" \ -ex "c"
Save the following to ${HOME}/.gdbinit
:
set auto-load safe-path / handle SIGXCPU SIG33 SIG35 SIG36 SIG37 SIG38 SIGPWR nostop noprint define mono_backtrace select-frame 0 set $i = 0 while ($i < $arg0) set $foo = (char*) mono_pmip ($pc) if ($foo) printf "#%d %p in %s\n", $i, $pc, $foo else frame end up-silently set $i = $i + 1 end end define mono_stack set $mono_thread = mono_thread_current () if ($mono_thread == 0x00) printf "No mono thread associated with this thread\n" else set $ucp = malloc (sizeof (ucontext_t)) call (void) getcontext ($ucp) call (void) mono_print_thread_dump ($ucp) call (void) free ($ucp) end end
gdb -ex "set breakpoint pending on" \ -ex "set pagination off" \ -ex "b helper_vsetvl" \ -ex "layout split" \ -ex "r" \ --args mono \ --debug out/host/renode/Renode.exe \ -e "\$bin=@out/springbok/test_vsetvl/test_vsetvl.elf; i @sim/config/springbok.resc;" \ --disable-xwt \ --console