[问题] qemu + kgdb

楼主: gigigigi (gigigigi)   2014-06-27 22:36:01
我看网络资料成功remote gdb 到 linux kernel
gdb vmlinux
b start_kernel
target remote localhost:1234
c
不过我有个疑惑这样好像是开机流程, 有办法透过qemu + kgdb 其他kernel 运作吗?
例如想知道像是linux kernel suspend / resume 这样 qemu + kgdb 能办到吗?
或是我想在qemu 写个小程式 例如是 open 开档 之后 read/write , 我想知道 kernel 那边运作
这样有办法在qemu 写个user space 小程式吗?
谢谢
作者: i386 (i386 cpu)   2014-06-27 23:32:00
file open可以, http://i.imgur.com/9NAJlpy.pngsuspend/resume我没试过, network的部份也可以debug.不过kernel file system的部份不是我的专长,不能给什么建议..
楼主: gigigigi (gigigigi)   2014-06-28 00:00:00
请问照片中 fs/file.c 档案是qemu+kgdb 启动流程会跑到?还是你能在qemu写user space程式让kernel跑到file.c 里面因为我现在比较不解就是想知道kernel某部份系统运作流程我不是要先在user space 写特定程式让他call 到kernel我才有办法用gdb 知道想了解的那部份运作流程我主要现在疑问在这部份..谢谢
作者: i386 (i386 cpu)   2014-06-28 00:36:00
break point设在alloc_fd, 当然是在user space执行cat init往下用ioctl call到kernel里面取得fd会执行到的地方.用cat 只是简单可以去作fopen的动作而已.这部份你要写user application去作fopen也可以..如果你是要了解kernel里面的运作方式, file read/write用cat/echo这两个命令就可以了..

Links booklink

Contact Us: admin [ a t ] ucptt.com