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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Bochs调试Linux内核 - 定位内核中的变量或数据结构

發(fā)布時(shí)間:2025/4/14 linux 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bochs调试Linux内核 - 定位内核中的变量或数据结构 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

到此網(wǎng)址下載,

http://oldlinux.org/Linux.old/bochs/linux-0.12-080324.zip

解壓以后如下;?

第一個(gè)文件是Bochs安裝文件;安裝之;安裝之后如下圖;同時(shí)在下圖目錄新建0.11目錄;

把下載的如下內(nèi)容拷貝過(guò)來(lái); .bxrc, 這是bochs配置文件;

bochs配置文件包含如下兩行,

? ??floppya: 1_44="bootimage-0.12-hd", status=inserted
? ? floppyb: 1_44="diskb.img", status=inserted

這是指定軟驅(qū)A插入載有0.12版本的內(nèi)核鏡像的軟盤(pán); diskb.img,這里面可能是一些工具;

然后在此目錄建立一個(gè)run.bat;內(nèi)容如下圖;

?安裝目錄根據(jù)自己的更改;運(yùn)行此bat;如果寫(xiě)錯(cuò)?bochsrc-0.12-hd.bxrc ,則可能出現(xiàn)類(lèi)似下圖錯(cuò)誤;

運(yùn)行以后,正常就進(jìn)到 <bochs:1> 停止;0.12版本內(nèi)核已裝載;可以輸入調(diào)試命令;

先在7c00設(shè)一個(gè)斷點(diǎn),然后下一行再輸入 c ,執(zhí)行到斷點(diǎn);

執(zhí)行到斷點(diǎn)如下圖;這里是一條 mov ax, 0x07c0 指令;根據(jù)資料,這條指令是一些操作系統(tǒng)開(kāi)始引導(dǎo)的起點(diǎn);

參照,https://blog.csdn.net/bcbobo21cn/article/details/105314444
然后看一下;此目錄下還有SYSTEM.MAP文件;里面是內(nèi)核的函數(shù)和變量的地址;這是編譯內(nèi)核時(shí)產(chǎn)生的;是別人做的,我不會(huì)做;

利用此文件可以在調(diào)試時(shí)快速定位到感興趣的變量或函數(shù);

假設(shè)要定位到buffer_init函數(shù),地址0xf488;

輸入lb 0xf488;在此地址設(shè)一個(gè)斷點(diǎn);lb = lbreak;? ? l,應(yīng)該是line的意思;線性地址;

然后輸入 c 繼續(xù)執(zhí)行;但是就掛了;如下圖;前頭相關(guān)的內(nèi)容還沒(méi)看,可能還有些配置沒(méi)弄完;

再試另外的地址也是掛掉;

主要參考的?Linux內(nèi)核完全剖析 - 基于0.12內(nèi)核 一書(shū);還有,

? ??bochs調(diào)試linux 0.11內(nèi)核_envy2008的專欄-CSDN博客

總結(jié)

以上是生活随笔為你收集整理的Bochs调试Linux内核 - 定位内核中的变量或数据结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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