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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發布時間:2025/4/14 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bochs调试Linux内核 - 定位内核中的变量或数据结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

到此網址下載,

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

解壓以后如下;?

第一個文件是Bochs安裝文件;安裝之;安裝之后如下圖;同時在下圖目錄新建0.11目錄;

把下載的如下內容拷貝過來; .bxrc, 這是bochs配置文件;

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

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

這是指定軟驅A插入載有0.12版本的內核鏡像的軟盤; diskb.img,這里面可能是一些工具;

然后在此目錄建立一個run.bat;內容如下圖;

?安裝目錄根據自己的更改;運行此bat;如果寫錯?bochsrc-0.12-hd.bxrc ,則可能出現類似下圖錯誤;

運行以后,正常就進到 <bochs:1> 停止;0.12版本內核已裝載;可以輸入調試命令;

先在7c00設一個斷點,然后下一行再輸入 c ,執行到斷點;

執行到斷點如下圖;這里是一條 mov ax, 0x07c0 指令;根據資料,這條指令是一些操作系統開始引導的起點;

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

利用此文件可以在調試時快速定位到感興趣的變量或函數;

假設要定位到buffer_init函數,地址0xf488;

輸入lb 0xf488;在此地址設一個斷點;lb = lbreak;? ? l,應該是line的意思;線性地址;

然后輸入 c 繼續執行;但是就掛了;如下圖;前頭相關的內容還沒看,可能還有些配置沒弄完;

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

主要參考的?Linux內核完全剖析 - 基于0.12內核 一書;還有,

? ??bochs調試linux 0.11內核_envy2008的專欄-CSDN博客

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。