使用GDB对qemu进行调试

67次阅读
没有评论

共计 758 个字符,预计需要花费 2 分钟才能阅读完成。

如何使用GDB对qemu进行调试:

 gdb --arg /opt/qemu-7.2.1/build/x86_64-softmmu/qemu-system-x86_64 -accel kvm -m 4096 -smp 4 -hda /opt/lyy/CentOS7.qcow2 -boot menu=on -bios /opt/seabios/out/bios.bin -d unimp -k en-us  -vnc :0 -S

其中:/opt/qemu-7.2.1/build/x86_64-softmmu/qemu-system-x86_64 -accel kvm -m 4096 -smp 4 -hda /opt/lyy/CentOS7.qcow2 -boot menu=on -bios /opt/seabios/out/bios.bin -d unimp -k en-us :是正常qemu启动流程, -vnc表示开启VNC监听,可以使用VNC连接这个虚拟机,端口是5900

-S选项代表运行后暂停QEMU执行。

启动后进入如下界面:

使用GDB对qemu进行调试

使用gdb命令进行调试,

可以先设置断点:例如

 break main
 # break 方法名,上述命令代表对main方法进行打上断点

例如我们需要查看vnc_listen_io方法进入时的参数已经栈中函数,可以给vnc_listen_io打上断点:

 break vnc_listen_io

查看已经打的断点:

 info breakpoints

然后启动我们要调试的程序:

 run

一直运行直到下一个断点:

 continue

进入下一步:

 step

在调试vnc连接过程中,因为qemu启动过程会不停进入,需要run后进行continue等待qemu启动:

使用GDB对qemu进行调试

启动过后,可以看到5900端口就可以访问了,采用vnc客户端连接vnc 5900端口:

再使用gdb命令bt:查看函数调用堆栈

 bt

使用GDB对qemu进行调试

正文完
 
landery
版权声明:本站原创文章,由 landery 2023-05-15发表,共计758字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)