色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 使用KGDB在QEMU上調試內核

使用KGDB在QEMU上調試內核 時間:2018-09-25      來源:未知

Linux是一個非常棒的操作系統, 很多Linux的愛好者, 都想深入的學習它, 市面上的工具也很多, 今天給大家介紹一下怎么用KGDB來調試kernel的方法.

1. 下載新Linux內核

首先去Linux 官方網站 www.kernel.org 下載新的內核源碼, 現在新的版本是4.0. 我們以4.2.8為例.

假設缺省工作目錄為/home/linux/workspace

$ cd workspace

$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.2.8.tar.xz

$ tar -xvf linux-4.2.8.tar.xz

$ mv linux-4.2.8 linux

2. 配置內核選擇

如果要使能kgdb調試進行調試, 需要使用KGDB over the serial console 作為與gdb通信模塊。

$ cd linux

$ make defconfig

$ make menuconfig

選中 KGDB: use kgdb over the serial console 選項

General setup —>

[*] Prompt for development and/or incomplete code/driversKernel hacking —>

[*] Compile the kernel with debug info

[*] Compile the kernel with frame pointers

[*] KGDB: kernel debugger —>

<*> KGDB: use kgdb over the serial console

3. 編譯kernel

我們可以使用 -j選項, 根據CPU數來進行并行編譯,從而加快編譯速度,如果機器CPU是雙核4線程, -j后面跟上4.

如:

$ make -j4

如果想要保持linux目錄的clear,將編譯產生的二進制文件放到另一個目錄下,請參考使用下面的命令:

$ mkdir obj

$ cd linux

$ make O=../obj defconfig

$ make O=../obj -j4

編譯完成后,復制bzImage和vmlinux到工作目錄下備用

$ cp arch/x86/boot/bzImage ~/workspace

$ cp vmlinux ~/workspace

4. 安裝qemu

我們用的系統為ubuntu15.04. 也可以直接下載源碼進行編譯安裝.

$ sudo apt-get install qemu

5. 用qemu啟動Linux

用qemu啟動我們剛剛編譯的好的內核文件. 需要使用到根文件系統, 可以下載別人做好的, 也可以根據網上教程自己制作一個根文件系統.

$ qemu -kernel ~/workspace/bzImage -append "root=/dev/sda" -boot c -sda ~/workspace/busybox.img -k en-us

6. 啟用KGDB

我們已經使用qume啟動Linux系統了, 如果要使用kgdb需要在內核啟動時增加參數. 當然也可以在內核啟動后echo kgdboc模塊的參數來重新設置參數. 這兩種方式都可以, 在這里我們采用在內核啟動時增加啟動參數的方式:(kgdboc=ttyS0,115200 kgdbwait)

$ qemu -kernel ~/workspace/bzImage -append "root=/dev/hda kgdboc=ttyS0,115200kgdbwait" -boot c -sda ~/workspace/busybox.img -k en-us -serial tcp::5566,server

這時,運行qemu的終端將提示等待遠程連接到本地端口4321:

QEMU waiting for connection on: tcp:0.0.0.0:4321,server

這時使用另外一個控制臺執行:

$ gdb /usr/src/work/vmlinux(gdb) target remote localhost:4321

然后qemu就可以繼續正常運行下去,后停止內核,并顯示如下信息:

kgdb: Waiting for connection from remote gdb…

這時gdb這邊就可以看到如下的提示:

(gdb) target remote localhost:4321Remote debugging using localhost:4321kgdb_breakpoint () at kernel/debug/debug_core.c:983983 wmb(); /* Sync point after breakpoint */(gdb)

開始kernel的旅行吧!!!

注:和上面的文章不同的是,它將qemu的虛擬串口導向到本地的一個”pty”設備上,而前面我們是導向到一個socket端口上.

qemu -serial參數介紹如下:

-serial devRedirect the virtual serial port to host character device dev. The default devices "vc" in graphical mode and "stdio" in non graphical mode. This option can based several times to simulate up to 4 serials ports.

如果gdb提示如下信息:

warning: Invalid remote reply:

可以使用Ctrl+C來終止當前gdb的操作,再次使用下面命令重新連接一次kgdb即可:

(gdb) target remote localhost:4321

參考:

//kernel.org/pub/linux/kernel/people/jwessel/kgdb/

setting up kgdb using kvmqemu

上一篇:QT 5.3開發及移植(4)

下一篇:NDK環境配置

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 亚洲中文字幕a∨ | 国产爆乳无码av在线播放 | 毛片无码免费无码播放 | 少妇人妻偷人精品视频 | 中国亚洲呦女专区 | 四虎影院永久免费 | 超清无码无卡中文字幕 | 激情综合丁香五月 | 亚洲欧美日韩久久一区二区 | 亚洲国产美女精品久久久 | 中文无码一区二区视频在线播放量 | 欧美精品高清无码 | 国产AV无码专区亚洲AV毛片搜 | 九九热视频精品在线观看 | 亚洲av第一网站久章草 | 中文字幕被公侵犯的漂亮人妻 | 亚洲AV无码精品无码麻豆 | 中文字幕亚洲欧美专区 | 久久精品国产亚洲AV忘忧草18 | 亚洲精品久久久久综合 | 亚州精品av久久久久久久影院 | 中文字幕 日韩 欧美 | 国产一级精品绿帽视频 | 国产精品亚洲色婷婷99久久精品 | WC女厕撒尿TV女厕偷拍 | 蜜桃久久久aaaa成人网一区 | 天天看片视频免费观看 | ai杨幂被弄高潮在线观看 | 水多多凹凸福利视频导航 | 伊人二区 | 亚洲日本VA中文字幕无码毛片 | 强制高潮18XXXXHD日韩 | 少妇与黑人一二三区无码 | 狼群社区WWW在线资源 | 农村熟女大胆露脸自拍 | 国产乱子伦精品免费女 | 日本在线无 | 国产成人黄色网址 | 女人第一次一男一女毛片 | 亚洲AV第一成肉网肉片AV | 欧美黑人性生活视频 |