作者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/m.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