开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

          開通VIP
          vmware + kgdb + linux2.6.15內(nèi)核調(diào)試配置

          vmware + kgdb + linux2.6.15內(nèi)核調(diào)試配置

          ===================================================

          作者:ietf AT doit.com.cn

          引用請(qǐng)注明出處。

          ===================================================

          從早到晚,整整一天啊,總算成功了。
          首先看看配置吧:

          系統(tǒng)配置:
          vmware workstation 5.5.3
          FC-5,內(nèi)核2.6.15
          具體可以參考《在VmWare Workstation中編譯Linux2.6.20內(nèi)核》(以下簡(jiǎn)稱《2.6.20》)中“VmWare虛擬硬件環(huán)境:”和“VmWare原始系統(tǒng)內(nèi)核環(huán)境”,完成系統(tǒng)的安裝,命名系統(tǒng)為"FC-5-kgdb-client"。

          Clone一個(gè)和預(yù)裝環(huán)境一樣的系統(tǒng),選則"Create a full clone",命名為"FC-5-kgdb-server"。

          分別為兩個(gè)系統(tǒng)增加一個(gè)串口,以"use named pipe"方式,其中:
          client端選擇"this end is theclient", "the other end is a virtual machine"
          Server端選擇"this end isthe server", "the other end is a virtual machine"

          文件下載:
          進(jìn)入client系統(tǒng),從網(wǎng)上下載如下源文件。(之所以算澤2.6.15版本內(nèi)核,是因?yàn)閗gdb的patch目前最高只能支持到這個(gè)版本

          linux kernel
          http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.tar.gz
          module-init-tools
          http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.gz
          kgdbpatch
          http://kgdb.linsyssoft.com/downloads/kgdb-2/linux-2.6.15.5-kgdb-2.4.tar.bz2

          按照《2.6.20》所介紹方式,解壓縮各個(gè)包。假設(shè)最終kernel和patch的路徑如下:
          /usr/src/linux
          /usr/src/linux-2.6.15.5-kgdb-2.4

          為內(nèi)核打上kgdb的支持補(bǔ)丁(俺的過程如下,具體可以參考patch中README,選擇需要得patch):

          cd/usr/src/linux
          patch -p1 <../linux-2.6.15.5-kgdb-2.4/core-lite.patch
          patch -p1 <../linux-2.6.15.5-kgdb-2.4/i386-lite.patch
          patch -p1 <../linux-2.6.15.5-kgdb-2.4/8250.patch
          patch -p1 <../linux-2.6.15.5-kgdb-2.4/eth.patch
          patch -p1 <../linux-2.6.15.5-kgdb-2.4/i386.patch
          patch -p1 <../linux-2.6.15.5-kgdb-2.4/core.patch
          patch -p1 <../linux-2.6.15.5-kgdb-2.4/module.patch
          patch -p1 <../linux-2.6.15.5-kgdb-2.4/sysrq_bugfix.patch

          按正常編譯內(nèi)核流程,進(jìn)入makemenuxonfig階段,除了《2.6.20》文中為了支持vmware中內(nèi)核編譯必須的選項(xiàng),還需要加上如下內(nèi)容:
          http://kgdb.linsyssoft.com/images/xconfig-selection.jpg

          但是這張圖片有點(diǎn)老,僅供參考。最關(guān)鍵的一條,上面沒有,就是:
          Serial portnumber for KGDB,默認(rèn)選項(xiàng)是1,需要改為零。(正是這一點(diǎn),折磨了我一個(gè)晚上)

          接著該干嗎就干嗎,直到make bzImage完成。

          下面要做的工作就相對(duì)簡(jiǎn)單一點(diǎn):
          將/usr/src/linux/arch/i386/boot/bzImage和/usr/src/linux/System.map復(fù)制到server上,進(jìn)入這兩個(gè)文件所在目錄,

          cpbzImage /boot/vmlinuz-2.6.15.5-kgdb
          cp System.map/boot/System.map-2.6.15.5-kgdb

          創(chuàng)建symbolic鏈接(為什么是symbolic,參考俺關(guān)于文件系統(tǒng)的文章吧)

          ln -s /boot/vmlinuz-2.6.15.5-kgdb /boot/vmlinuz
          ln -s/boot/System.map-2.6.15.5-kgdb /boot/System.map

          下面就該修改啟動(dòng)項(xiàng)啦:

          vim/boot/grub/grub.conf

          我的給大家做個(gè)參考吧:

          default=1
          timeout=5
          splashimage=(hd0,0)/grub/splash.xpm.gz
          hiddenmenu
          titleFedora Core (2.6.15.5-kgdb)
           root (hd0,0)
           kernel/vmlinuz-2.6.15.5-kgdb ro root=/dev/VolGroup00/LogVol00kgdb8250=0,115200 kgdbwait
          title Fedora Core(2.6.15-1.2054_FC5)
           root (hd0,0)
           kernel/vmlinuz-2.6.15-1.2054_FC5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
           initrd/initrd-2.6.15-1.2054_FC5.img

          OK, reboot就等著重啟吧。

          系統(tǒng)引導(dǎo)到

          "Uncompressing Linux... OK, booting the kernel."

          所有的資料上都說看到

          "Waiting for connection fromremote gdb..."

          才是等待調(diào)試狀態(tài),可我看到的只是前面一句。再加上默認(rèn)得串口選項(xiàng)沒有看到資料提醒需要修改,所以總是無法連接。這兩個(gè)綜合起來,就一直折騰了整整一天。好在最后耐心的看patch的README才有所啟發(fā)。


          就可以用client去連接了。在client上:

          cd /usr/src/linux
          gdb ./vmlinux

          GNUgdb Red Hat Linux (6.0post-0.20040223.17rh)
          Copyright 2004 FreeSoftware Foundation, Inc.
          GDB is free software, covered by the GNUGeneral Public License, and you are
          welcome to change it and/ordistribute copies of it under certain conditions.
          Type "show copying"to see the conditions.
          There is absolutely no warranty for GDB. Type "show warranty" for details.
          This GDB was configured as"i386-redhat-linux-gnu"...Using host libthread_db library"/lib/tls/libthread_db.so.1".

          (gdb) set remotebaud 115200
          (gdb)target remote /dev/ttyS0
          Remote debugging using /dev/ttyS0
          breakpoint() at kernel/kgdb.c:1212
          1212           atomic_set(&kgdb_setting_breakpoint, 0);
          warning: shared libraryhandler failed to enable breakpoint
          (gdb)

          下面就隨心所欲,去折騰你的內(nèi)核吧。

          參考文檔:
          http://kgdb.linsyssoft.com/quickstart.htm
          patch源碼中README
          《在VmWare Workstation中編譯Linux 2.6.20內(nèi)核》

          本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          在vmware上建立kgdb調(diào)試linux kernel源碼的平臺(tái)-1
          Linux 系統(tǒng)內(nèi)核的調(diào)試
          linux kgdb gdb debug ? 內(nèi)核調(diào)試器kdb與kgdb模式相互切換
          不使用KGDB 只用GDB+VMWARE 能調(diào)試內(nèi)核模塊嗎 - 內(nèi)核源碼
          FC4下升級(jí)內(nèi)核到2.6.15.4及給netfilter打補(bǔ)丁 - 網(wǎng)絡(luò)與硬件 - Linux - ChinaUnix.net
          用iptables封殺內(nèi)網(wǎng)的bt軟件 - 51CTO.COM
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
          綁定賬號(hào)成功
          后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點(diǎn)擊這里聯(lián)系客服!

          聯(lián)系客服