Windows調試技術基礎

來源:互聯網
上載者:User

一.序言、

軟體調試技術的意義:

1. 在調試上花費時間很多

  2. 調試可以解決很多問題,是強大的工具

  3. 調試是有穩定的生命週期

  4. 調試也是學習技術的好工具

    調試視窗:

BreakPoints. Watch, Local, Call Statck, Memory, Disassembly(反組譯碼)等

   常用快速鍵:

設定/取消斷點: F9

步入:F11

步過:F10

跳出:Shift + F11

   參數設定:需要設定工作目錄,啟動參數等

   工程設定中的注意點:關掉編譯最佳化和不關閉編譯最佳化,彙編指令是不一樣的。

   參數化:Debuging中Command Arguments中輸入參數:this is a test

二. 提高篇

斷點:

調試器設定斷點的原理:

將指令的第一個位元組儲存,寫入一條INT3指令

在設定檔中只是記錄斷點位置,在實際執行時候替換

進階語言調試器調試產生多條彙編指令,但是並不是執行一條彙編指令就中斷一次,而是針對原始碼執行一行中斷一次

軟體編譯過程

編譯:

編譯期檢查:編譯錯誤,警告

運行檢查:

Run time Error Check

棧指標檢查

局部棧緩衝越界檢查:檢查Cookie值:若緩衝區溢位,則會將Cookie值覆蓋導致檢查Cookie不通過,自動中斷

未初始化的局部變數檢查

儲存偵錯符號的檔案:

單獨的符號檔案:PDB

存放在可執行檔中

偵錯符號:

Global Variables

Local Variables

函數名和函數入口地址

FPO資料(精確定位到原始碼行)

符號檔案:KERNEL32.PDB檔案

符號檔案產生過程:在編譯過程中產生PDB和PE檔案

常用調試器:

WinDbug:

若無符號檔案,則只可做二進位檔案調試

存在符號問件時,需要加入微軟伺服器位址以及本地符號檔案地址,F9設定斷點調試,比VS調試簡單些

Softice

OllyDbg:

在沒有原始碼和符號檔案時,運用該工具查看彙編代碼

Syser

WinDBG,Kd之類的核心調試器:通過穿行發送格式資料包來進行聯絡

遠端偵錯:

在本機中調試其它機器上的程式

目標機設定:

安裝VS Remote Debuging Monitor

運行VS Remote Debuging Monitor,選擇:Tools->Options中的遠端偵錯模式

VS2005設定:在屬性-Debuging中設定

實用篇---調試技巧

條件斷點:

被頻繁調用的子函數,迴圈和多線程可使用條件斷點

F9設定斷點,Alt + F9 進入BreakPoints,選中條件斷點並輸入條件運算式

記憶體斷點:

F9設定斷點,進入偵錯模式

Debuing New Breakpoint, New Data Breakpoint

寫入監視地址:0x12345678或者 &i形式均可

讓程式繼續執行,當指定地址的記憶體內容被改變時,中斷髮生

MessageBox大法

不方便用偵錯模式啟動的程式可以添加一個MessageBox

查看時間日誌

部分無法正常啟動的程式

函數退出時崩潰

一般是緩衝區溢位導致,可以注釋掉部分代碼逐步縮小範圍定位錯誤

釋放記憶體時崩潰

記憶體被重複釋放等導致

查看程式連結依賴的動態連結程式庫:

eXeScope工具


執行個體篇--崩潰分析

應用程式崩潰:

捕捉dump

Windbug分析步驟:

開啟dump,載入符號檔案,執行 !analyze -v指令(分析出錯誤的位置),查看結果

藍屏:

藍屏資訊包括:

錯誤描述

建議措施

技術資訊(停止碼)

轉儲dump資訊

認識藍屏:

是Windows系統終極錯誤報表方式

作業系統檢測到威脅系統安全的行為或者情況,繼續運行可能導致嚴重錯誤,是作業系統的積極動作

藍屏原因:

錯誤驅動

硬體錯誤

核心代碼中的bug以及未處理的異常


應用程式層程式和核心層程式開發的區別:

應用程式層程式出錯可以直接關閉,結束程式,造成的危害相比與核心層程式錯誤來說較小,核心層程式出錯會造成藍屏,停止運行,一般是驅動程式bug造成的。核心層程式的編寫需要更加謹慎。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.