qemu kgdb kdb

来源:互联网 发布:软件测试好学吗 编辑:程序博客网 时间:2024/06/05 14:54


http://www.kgdb.info/kgdb/use_kgdb/using_kgdb_base_qemu/

https://www.kernel.org/pub/linux/kernel/people/jwessel/kdb/usingKDB.html

http://blog.csdn.net/u013388374/article/details/23553031


http://www.linux-magazine.com/Online/Features/Qemu-and-the-Kernel


1. build kernel and rootfs according to  http://www.kgdb.info/kgdb/use_kgdb/using_kgdb_base_qemu/


2. start qemu with 2 serial(-serial) and one gdb server (-s)

qemu -s  -kernel /usr/src/work/bzImage.def -append "root=/dev/sd console=ttyS0,115200 kgdboc=ttyS1,115200 kgdbwait" -boot c -hda /usr/src/work/busybox.img -k en-us -serial tcp:127.0.0.1:4444,server -serial tcp:127.0.0.1:4445,server


3.  start console and gdb console

telnet localhost 4444

gdb vmlinux

gdb> set remotebaud 115200

gdb> set debug remote 1

gdb> set target-async on

gdb>  target remote :4445   或者直接用qemu提供的gdb server在  target remote  :1234


4.   等待系统启动, gdb break in, 

gdb> break sys_sync

gdb> c


5. 在系统里面通过sync让gdb break in, 也可以通过sysrq。 

echo g >/proc/sysrq-trigger

minicom: ctrl a, f, g

telne supporting sending break:  ctrl ], send break, press ENTER, g


6.Without gdb  targeted, you get kdb on console


0 0