日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

每天学点GDB 12

發(fā)布時(shí)間:2024/1/18 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 每天学点GDB 12 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文介紹在archlinux環(huán)境下,如何進(jìn)行內(nèi)核使用gdb配合qemu進(jìn)行調(diào)試。 ? 1. 安裝qemu 2. 編譯linux kernel 選擇最新的內(nèi)核版本,規(guī)避gcc編譯出錯(cuò)的問(wèn)題具體步驟如下 ? ?2.1 make mrproper ? ?2.2 make ARCH=i386 menuconfig ? ? ? ? ?選中kernel hacking->compile the kernel with debug info ? 2.3 make 3.編譯簡(jiǎn)單的init程序 #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char** argv) {while ( 1 ) {prinf("hello,world\n");sleep(10);}return 0; } ? 編譯生成init #gcc -static -o init hello.c 4. 創(chuàng)建根文件系統(tǒng) ?? dd if=/dev/zero of=myinitrd4M.img bs=4096 count=1024mke2fs -t ext3 myinitrd4M.imgmkdir -p rootfs/devmount -o loop myinitrd4M.img rootfsmknod rootfs/dev/console c 5 1mknod rootfs/dev/ram b 1 0cp init rootfsumount rootfs ? 創(chuàng)建必要的目錄
  • 裝置檔

    為了使用 command line 以及開機(jī),我們需要新增三項(xiàng)裝置 console 、 null 以及 ttyAMA0 ,在 _install/dev 下鍵入

    sudo mknod console c 5 1 sudo mknod null c 1 3 sudo mknod ttyAMA0 c 204 64
  • ? 5. 運(yùn)行內(nèi)核 在一個(gè)終端運(yùn)行 qemu-system-i386 -kernel arch/x86/boot/bzImage -initrd myinitrd4M.img -append? "root=/dev/ram init=/bin/ash" -s -S
    在另一個(gè)終端運(yùn)行如下命令啟動(dòng)gdb并調(diào)試 #gdb vmlinux gdb)target remote:1234 gdb)break start_kernel gdb)c 開始內(nèi)核調(diào)試之旅吧

    轉(zhuǎn)載于:https://www.cnblogs.com/hseagle/p/3294297.html

    總結(jié)

    以上是生活随笔為你收集整理的每天学点GDB 12的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。