Debug Rust Program

How to Debug Rust Program

Example

cloud-hypvisor vfio-device

Debug Cmd with rust-gdb

sudo rust-gdb --args ./cloud-hypervisor --kernel ./linux-cloud-hypervisor/arch/x86/boot/compressed/vmlinux.bin --console off --serial tty --disk path=clear-31890-kvm.img --cmdline "console=ttyS0 reboot=k panic=1 nomodules i8042.noaux i8042.nomux i8042.nopnp i8042.dumbkbd root=/dev/vda3" --cpus boot=4 --memory size=1024M --net "tap=,mac=,ip=,mask=" --rng --device path=/sys/bus/pci/devices/0000:05:00.0/,iommu=on,id=17

Tips: Command Start as rust-gdb --args ...

Debug Process

root@reaper:~/home$ sudo rust-gdb --args ./cloud-hypervisor --kernel ./linux-cloud-hypervisor/arch/x86/boot/compressed/vmlinux.bin --console off --serial tty --disk path=clear-31890-kvm.img --cmdline "console=ttyS0 reboot=k panic=1 nomodules i8042.noaux i8042.nomux i8042.nopnp i8042.dumbkbd root=/dev/vda3" --cpus boot=4 --memory size=1024M --net "tap=,mac=,ip=,mask=" --rng --device path=/sys/bus/pci/devices/0000:05:00.0/,iommu=on,id=17
GNU gdb (Debian 8.2.1-2+b3) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./cloud-hypervisor...done.
(gdb) b vmm/src/device_manager.rs:2360

Tips: Set break point like this:
(gdb) b vmm/src/device_manager.rs:2360

And So On

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章