作者gigigigi (gigigigi)
看板LinuxDev
标题[问题] qemu + kgdb
时间Fri Jun 27 22:36:01 2014
我看网路资料成功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 小程式吗?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.204.74.72
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1403879764.A.829.html
2F:→ i386:suspend/resume我没试过, network的部份也可以debug. 06/27 23:33
3F:→ i386:不过kernel file system的部份不是我的专长,不能给什麽 06/27 23:34
4F:→ i386:建议.. 06/27 23:34
5F:→ gigigigi:请问照片中 fs/file.c 档案是qemu+kgdb 启动流程会跑到? 06/28 00:00
6F:→ gigigigi:还是你能在qemu写user space程式让kernel跑到file.c 里面 06/28 00:01
7F:→ gigigigi:因为我现在比较不解就是想知道kernel某部份系统运作流程 06/28 00:03
8F:→ gigigigi:我不是要先在user space 写特定程式让他call 到kernel 06/28 00:03
9F:→ gigigigi:我才有办法用gdb 知道想了解的那部份运作流程 06/28 00:04
10F:→ gigigigi:我主要现在疑问在这部份..谢谢 06/28 00:05
11F:→ i386:break point设在alloc_fd, 当然是在user space执行cat init 06/28 00:36
12F:→ i386:往下用ioctl call到kernel里面取得fd会执行到的地方. 06/28 00:37
13F:→ i386:用cat 只是简单可以去作fopen的动作而已.这部份你要写 06/28 00:38
14F:→ i386:user application去作fopen也可以.. 06/28 00:39
15F:→ i386:如果你是要了解kernel里面的运作方式, file read/write用 06/28 00:41
16F:→ i386:cat/echo这两个命令就可以了.. 06/28 00:42