[問題] 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