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