看板 LinuxDev 關於我們 聯絡資訊
我看網路資料成功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://www.ptt.cc/bbs/LinuxDev/M.1403879764.A.829.html
i386:file open可以, http://i.imgur.com/9NAJlpy.png 06/27 23:32
i386:suspend/resume我沒試過, network的部份也可以debug. 06/27 23:33
i386:不過kernel file system的部份不是我的專長,不能給什麼 06/27 23:34
i386:建議.. 06/27 23:34
gigigigi:請問照片中 fs/file.c 檔案是qemu+kgdb 啟動流程會跑到? 06/28 00:00
gigigigi:還是你能在qemu寫user space程式讓kernel跑到file.c 裡面 06/28 00:01
gigigigi:因為我現在比較不解就是想知道kernel某部份系統運作流程 06/28 00:03
gigigigi:我不是要先在user space 寫特定程式讓他call 到kernel 06/28 00:03
gigigigi:我才有辦法用gdb 知道想了解的那部份運作流程 06/28 00:04
gigigigi:我主要現在疑問在這部份..謝謝 06/28 00:05
i386:break point設在alloc_fd, 當然是在user space執行cat init 06/28 00:36
i386:往下用ioctl call到kernel裡面取得fd會執行到的地方. 06/28 00:37
i386:用cat 只是簡單可以去作fopen的動作而已.這部份你要寫 06/28 00:38
i386:user application去作fopen也可以.. 06/28 00:39
i386:如果你是要了解kernel裡面的運作方式, file read/write用 06/28 00:41
i386:cat/echo這兩個命令就可以了.. 06/28 00:42