Re: [問題] kernel debug

看板LinuxDev作者 (科科)時間12年前 (2011/10/13 21:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《yshihyu (yshihyu)》之銘言: : 請問一下 : 1.kgdb/ gdb 是怎樣差異? 一個是 kernel 內的,一個是 user program 用的。 但是 kgdb 這個名字會誤導人,期時要搭配 gdb 才能使用。 應該說開啟 kgdb 後,kernel 可以在 runtime 的時候給遠端的 gdb 控制。 : 2.是linux kernel 在編譯程式menuconfig 要設定支援 kgdb 才可以用gdb去對kernel debug嗎? : 還有編譯kernel gcc 要 加-g 參數是嘛? 要用 menuconfig 去開。 : 3.因為一般程式用gdb可以針對程式碼的哪個函數或是檔案的行數去debug : 那用gdb去debug一個kernel要如何去debug可能出錯的地方? 這是我疑惑的地方 : 下面是把編譯的image 用載入到gdb是嘛? : gdb -q vmlinux gdb 要搭配 kgdb 才能使用,你要 debug 的地方是 host, 你需要另外一台電腦當 client 端。一般來說可用 LAN 或 rs232 的方式連進去。無法直接對 vmlinux 使用,因為 它只是個 binary file,不是 process。 : 4.為什麼網路上有人是結合qemu 虛擬機+ kgdb 去debug kernel 有什麼用處? 因為方便阿~ 用 virtual machine 就不需要兩台電腦這麼麻煩, 單純多了。實際上 kgdb 可能需要修改 uart driver 才能使用。(arm kernel) : 5.qemu + kgdb 算是他們說的遠端debug? 用在嵌入式上嗎? 不算,qemu 是 virtual machine。另外真實的 ARM SoC 開發板是很難模擬的。 另外 qemu 可模擬 x86 和 arm,我想不只是嵌入式。 --- 最後,其實 printk 會比較好用,當你用了 kgdb,可能就無法重現 之前的問題了。 : 謝謝 : 謝謝 -- ψ(′~‵)╯ 我什麼都沒說,我只是蹲在旁邊畫圈圈 -- ※ 發信站 :批踢踢實業坊(ptt.cc) ◆ From: 220.132.13.236 ※ 編輯: zwai 來自: 220.132.13.236 (10/13 21:54)
文章代碼(AID): #1EbkmkL1 (LinuxDev)