(33)除錯驅動程式

2021-10-24 17:40:31 字數 1229 閱讀 8483

接上一節課,我們學習了如何執行乙個驅動,今天,學習如何除錯驅動。

我們以前編寫應用程式,可以直接在ide裡除錯,vs,od這些都是三環偵錯程式。驅動執行在核心層,需要使用windbg,配合pdb檔案除錯。

pdb檔案是編譯驅動的同時生成的除錯資訊檔案,它可以幫助我們像除錯應用程式一樣除錯驅動程式。其實之前我們已經使用過pdb,我們配置雙機除錯環境時,在物理機上安裝了符號檔案,並在windbg中匯入過。

有了pdb,我們就可以知道當前彙編語句屬於哪個函式,程式定義的結構體等關鍵資訊,說一句題外話,軟體發布的時候,切記不要把pdb也發布出去,因為這會給別人破解你的軟體提供巨大便利。

需要在windbg中設定pdb路徑,我們要找到驅動程式和pdb所在的目錄:

在windbg中開啟符號檔案路徑,將上面的路徑貼上進去,用分號隔開多個條目:

不要忘記勾選reload

對上節課的**稍作修改,新增了斷點:

#include // 解除安裝函式

void driverunload(pdriver_object driver)

// 入口函式,相當於main

ntstatus driverentry(pdriver_object driver, punicode_string reg_path)

// 驅動程式入口

dbgprint("hambaga的第乙個驅動程式.\r\n");

// 設定乙個解除安裝函式,便於退出

可以看到,觸發斷點了,觀察windbg視窗:

多了乙個源**視窗,現在可以像除錯應用程式一樣除錯驅動了。

除錯裝置驅動程式

linux核心沒有整合對偵錯程式的支援。指令級的kdb kernel debudgger 核心偵錯程式 源 級偵錯程式kgdb kernel gnu debugger 核心gnu偵錯程式 udev 工作 1.核心中的sysfs支援,sysfs是linux裝置模型的重要組成部分。位於記憶體中,在啟動時...

windbg除錯驅動程式

不正確之處歡迎指正,高手勿噴 配置windbg路徑 symbol path srv f windows symbolxp3 source path c users bojay desktop first image path c users bojay desktop first objchk wx...

linux裝置驅動程式除錯

一 寫linux裝置驅動程式最難的地方就是沒有強大的除錯工具,一般間接或者直接的除錯手段 1.利用printk 2.檢視oop訊息 3.利用strace 4.利用核心內建的hacking選項 5.利用ioctl方法 6.利用 proc檔案系統 7.使用kgdb 8.使用systemtap 二 1,利...