[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  • 新类目

     管理
     投资理财
     经济
     社会科学
  • 軟件調試 第2版 卷2 Windows平臺調試 上、下冊
    該商品所屬分類:圖書 ->
    【市場價】
    1027-1488
    【優惠價】
    642-930
    【作者】 張銀奎 
    【出版社】人民郵電出版社 
    【ISBN】9787115538383
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    出版社:人民郵電出版社
    ISBN:9787115538383
    商品編碼:10021772631424

    品牌:文軒
    出版時間:2020-09-01
    代碼:199

    作者:張銀奎

        
        
    "



    作  者:張銀奎 著
    /
    定  價:199
    /
    出 版 社:人民郵電出版社
    /
    出版日期:2020年09月01日
    /
    頁  數:888
    /
    裝  幀:平裝
    /
    ISBN:9787115538383
    /
    主編推薦
    1. 軟件調試領域的“百科全書”,圍繞軟件調試的“生態”繫統(ecosystem)、異常(exception)和調試器三條主線,介紹軟件調試的相關原理和機制,探討可調試性(debuggability)的內涵、意義,以及實現軟件可調試性的原則和方法,總結軟件調試的理論和很好實踐;2. 作者張銀奎是軟件調試領域資-深專家,國內軟件調試技術專家; 3. 內容全面:為了便於攜帶和閱讀,裝定為上、下兩冊;4. 理論與實踐結合:不僅涵蓋了相關的技術背景知識,還深入研討了大量具有代表性的技術細節;5.等
    目錄
    ●第一篇大局觀
    第1章Windows繫統簡史
    1.1源於DOS
    1.2功在NT
    1.3Windows2000彰顯實力
    1.4巔峰之作:WindowsXP和WindowsServer2003
    1.5WindowsVista折戟沙場
    1.6Windows7享利中興
    1.7Windows8革新受挫
    1.8Windows10何去何從
    1.9本章總結17
    參考資料
    第2章進程和線程
    2.1任務
    2.2進程資源
    2.3進程空間
    2.3.132位進程空間
    2.3.264位進程空間
    2.4EPROCESS結構
    2.5PEB
    2.6內核模式和用戶模式
    2.6.1訪問模式
    2.6.2使用INT2E切換到內核模式
    2.6.3快速繫統調用
    2.6.4逆向調用
    2.6.5實例分析
    2.7線程
    2.7.1ETHREAD
    2.7.2TEB
    2.8WoW進程
    2.8.1架構
    2.8.2工作過程
    2.8.3注冊表重定向
    2.8.4注冊表反射
    2.8.5文件繫統重定向
    2.9創建進程
    2.10最小進程和Pico進程
    2.10.1最小進程
    2.10.2Pico進程
    2.11任務管理器
    2.12本章總結
    參考資料
    第3章架構和繫統部件
    3.1繫統概覽
    3.1.1內核空間
    3.1.2用戶空間
    3.2內核和HAL模塊
    3.2.1內核文件
    3.2.2HAL文件
    3.3空閑進程
    3.4繫統進程
    3.5內核空間的其他模塊
    3.6NTDLL.DLL
    3.6.1角色
    3.6.2調用繫統服務的樁函數
    3.6.3映像文件加載器
    3.6.4運行時庫
    3.6.5其他功能
    3.7環境子繫統
    3.8原生進程
    3.8.1特點
    3.8.2SMSS
    3.8.3CSRSS
    3.9本章總結
    參考資料
    第4章啟動過程
    4.1BootMgr
    4.1.1工作過程
    4.1.2調試方法
    4.2WinLoad
    4.3內核初始化
    4.3.1NT的入口函數
    4.3.2內核初始化
    4.4執行體的階段0初始化
    4.4.1總體過程
    4.4.2創建特殊進程
    4.5執行體的階段1初始化
    4.5.1Phase1Initialization
    4.5.2喚醒其他CPU
    4.5.3非啟動CPU的起步路線
    4.5.4漫長的I/O初始化
    4.5.5更新進度
    4.6創建用戶空間
    4.6.1創建會話管理器進程
    4.6.2建立環境子繫統
    4.6.3創建窗口站和桌面
    4.6.4用戶登錄
    4.7本章總結
    參考資料
    第二篇探微
    第5章特殊的過程調用
    5.1異步過程調用
    5.2中斷請求級別
    5.2.1設計初衷
    5.2.2基本原理
    5.2.3析疑
    5.3延遲過程調用
    5.3.1使用模式
    5.3.2黏滯在DPC
    5.4本地過程調用
    5.5遠程過程調用
    5.5.1工作模型
    5.5.2RPC子繫統服務
    5.5.3端點和協議串
    5.5.4蜂巢
    5.5.5案例和調試方法
    5.6本章總結
    參考資料
    第6章墊片
    6.1墊片數據庫
    6.1.1認識SDB文件
    6.1.2定制的SDB文件
    6.1.3修補模式
    6.2AppHelp
    6.2.1SDB功能
    6.2.2墊片引擎
    6.2.3AD掛鉤
    6.2.4穿山甲掛鉤
    6.3墊片動態庫
    6.3.1AcLayers.DLL
    6.3.2AcGenral.DLL和AcSpecfc.DLL
    6.3.3其他墊片模塊
    6.4應用程序墊片的工作過程
    6.4.1在父進程中準備墊片數據
    6.4.2在新進程中加載和初始化墊片引擎
    6.4.3加載墊片模塊
    6.4.4落實掛鉤
    6.4.5執行墊片
    6.5內核墊片引擎
    6.5.1數據和配置
    6.5.2初始化
    6.5.3KSE墊片結構
    6.5.4注冊墊片
    6.5.5部署墊片
    6.5.6執行墊片
    6.6本章總結
    參考資料
    第7章托管世界
    7.1簡要歷史
    7.2宏偉藍圖
    7.3類和方法表
    7.4輔助調試線程
    7.4.1托管調試模型
    7.4.2RCThread
    7.4.3刺探線程
    7.5CLR4的調試模型重構
    7.6SOS擴展
    7.6.1加載SOS
    7.6.2設置斷點
    7.6.3簡要原理
    7.7本章總結
    參考資料
    第8章Linux子繫統
    8.1源於Drawbridge
    8.2融入NT
    8.3總體架構
    8.4子繫統內核模塊
    8.5微軟版Linux內核
    8.6Linux子繫統服務器
    8.7WSL啟動器
    8.8交叉開發
    8.9WSL2
    8.10本章總結
    參考資料
    第三篇操作繫統的調試支持
    第9章用戶態調試模型
    9.1概覽
    9.1.1參與者
    9.1.2調試子繫統
    9.1.3調試事件驅動
    9.2采集調試消息
    9.2.1消息常量
    9.2.2進程和線程創建消息
    9.2.3進程和線程退出消息
    9.2.4模塊映射和反映射消息
    9.2.5異常消息
    9.3發送調試消息
    9.3.1調試消息結構
    9.3.2DbgkpSendApiMessage函數
    9.3.3控制被調試進程
    9.4調試子繫統服務器(WindowsXP之後)
    9.4.1DebugObject
    9.4.2創建調試對像
    9.4.3設置調試對像
    9.4.4傳遞調試消息
    9.4.5杜撰的調試消息
    9.4.6清除調試對像
    9.4.7內核服務
    9.4.8全景
    9.5調試子繫統服務器(WindowsXP之前)
    9.5.1概覽
    9.5.2Windows會話管理器
    9.5.3Windows環境子繫統服務器進程
    9.5.4調用CSRSS的服務
    9.5.5CsrCreateProcess服務
    9.5.6CsrDebugProcess服務
    9.6比較兩種模型
    9.6.1Windows2000調試子繫統的優點
    9.6.2Windows2000調試子繫統的安全問題
    9.6.3WindowsXP的調試模型的優點
    9.6.4WindowsXP引入的新調試功能
    9.7NTDLL.DLL中的調試支持例程
    9.7.1DbgUi函數
    9.7.2DbgSs函數
    9.7.3Dbg函數
    9.8調試API
    9.9本章總結
    參考資料
    第10章用戶態調試過程
    10.1調試器進程
    10.1.1線程模型
    10.1.2調試器的工作線程
    10.1.3DbgSsReserved字段
    10.2被調試進程
    10.2.1特征
    10.2.2DebugPort字段
    10.2.3BeingDebugged字段
    10.2.4觀察DebugPort字段和BeingDebugged字段
    10.2.5調試會話
    10.3從調試器中啟動被調試程序
    10.3.1CreateProcessAPI
    10.3.2第一批調試事件
    10.3.3初始斷點
    10.3.4自動啟動調試器
    10.4附加到已經啟動的進程中
    10.4.1DebugActiveProcessAPI
    10.4.2示例:TinyDbgr程序
    10.5處理調試事件
    10.5.1DEBUG_EVENT結構
    10.5.2WaitForDebugEventAPI
    10.5.3調試事件循環
    10.5.4回復調試事件
    10.5.5定制調試器的事件處理方式
    10.6中斷到調試器
    10.6.1初始斷點
    10.6.2編程時加入斷點
    10.6.3通過調試器設置斷點
    10.6.4通過遠程線程觸發斷點異常
    10.6.5在線程當前執行位置設置斷點
    10.6.6動態調用遠程函數
    10.6.7掛起中斷
    10.6.8調試快捷鍵(F12鍵)
    10.6.9窗口更新
    10.7輸出調試字符串
    10.7.1發送調試信息
    10.7.2使用調試器接收調試信息
    10.7.3使用工具接收調試信息
    10.8終止調試會話
    10.8.1被調試進程退出
    10.8.2調試器進程退出
    10.8.3分離被調試進程
    10.8.4退出時分離
    10.9本章總結
    參考資料
    第11章中斷和異常管理
    11.1中斷描述符表
    11.1.1概況
    11.1.2門描述符
    11.1.3執行中斷和異常處理函數
    11.1.4IDT一覽
    11.2異常的描述和登記
    11.2.1EXCEPTION_RECORD結構
    11.2.2登記CPU異常
    11.2.3登記軟件異常
    11.3異常分發過程
    11.3.1KiDispatchException函數
    11.3.2內核態異常的分發過程
    11.3.3用戶態異常的分發過程
    11.3.4歸納
    11.4結構化異常處理
    11.4.1SEH簡介
    11.4.2SHE機制的終結處理
    11.4.3SEH機制的異常處理
    11.4.4過濾表達式
    11.4.5異常處理塊
    11.4.6嵌套使用終結處理和異常處理
    11.5向量化異常處理
    11.5.1登記和注銷
    11.5.2調用結構化異常處理器
    11.5.3示例
    11.6本章總結
    參考資料
    第12章未處理異常和JIT調試
    12.1簡介
    12.2默認的異常處理器
    12.2.1BaseProcessStart函數中的結構化異常處理器
    12.2.2編譯器插入的SEH處理器
    12.2.3基於信號的異常處理
    12.2.4實驗:觀察默認的異常處理器
    12.2.5BaseThreadStart函數中的結構化異常處理器
    12.3未處理異常過濾函數
    12.3.1WindowsXP之前的異常處理機制
    12.3.2WindowsXP中的異常處理機制
    12.4“應用程序錯誤”對話框
    12.4.1用HardError機制提示應用程序錯誤
    12.4.2使用ReportFaultAPI提示應用程序錯誤
    12.5JIT調試和Dr.Watson
    12.5.1配置JIT調試器
    12.5.2啟動JIT調試器
    12.5.3自己編寫JIT調試器
    12.6頂層異常過濾函數
    12.6.1注冊
    12.6.2C運行時庫的頂層過濾函數
    12.6.3執行
    12.6.4調試
    12.7Dr.Watson
    12.7.1配置和查看模式
    12.7.2設置為默認的JIT調試器
    12.7.3JIT調試模式
    12.8DRWTSN32的日志文件
    12.8.1異常信息
    12.8.2繫統信息
    12.8.3任務列表
    12.8.4模塊列表
    12.8.5線程狀態
    12.8.6函數調用序列
    12.8.7原始棧數據
    12.9用戶態轉儲文件
    12.9.1文件格式概覽
    12.9.2數據流
    12.9.3產生轉儲文件
    12.9.4讀取轉儲文件
    12.9.5利用轉儲文件分析問題
    12.10本章總結
    參考資料
    第13章硬錯誤和藍屏
    13.1硬錯誤提示
    13.1.1缺盤錯誤
    13.1.2NtRaiseHardError
    13.1.3ExpRaiseHardError
    13.1.4CSRSS中的分發過程
    13.2藍屏終止
    13.2.1簡介
    13.2.2發起和產生過程
    13.2.3診斷藍屏錯誤
    13.2.4手工觸發藍屏
    13.3繫統轉儲文件
    13.3.1分類
    13.3.2文件格式
    13.3.3產生方法
    13.4分析繫統轉儲文件
    13.4.1初步分析
    13.4.2線程和棧回溯
    13.4.3陷阱幀
    13.4.4自動分析
    13.5輔助的錯誤提示方法
    13.5.1MessageBeep
    13.5.2Beep函數
    13.5.3閃動窗口
    13.6配置錯誤提示機制
    13.6.1SetErrorModeAPI
    13.6.2IoSetThreadHardErrorMode
    13.6.3藍屏後自動重啟
    13.7防止濫用錯誤提示機制
    13.8本章總結
    參考資料
    第14章錯誤報告
    14.1WER1.0
    14.1.1客戶端
    14.1.2報告模式
    14.1.3傳輸方式
    14.2繫統錯誤報告
    14.3WER服務器端
    14.3.1WER服務
    14.3.2錯誤報告分類方法
    14.3.3報告回應
    14.4WER2.0
    14.4.1模塊變化
    14.4.2創建報告
    14.4.3提交報告
    14.4.4典型應用
    14.5CER
    14.6本章總結
    參考資料
    第15章日志
    15.1日志簡介
    15.2ELF的架構
    15.2.1ELF的日志文件
    15.2.2事件源
    15.2.3ELF服務
    15.3ELF的數據組織350
    15.3.1日志記錄
    15.3.2添加日志記錄
    15.3.3API一覽
    15.4查看和使用ELF日志
    15.5CLFS的組成和原理
    15.5.1組成
    15.5.2存儲結構
    15.5.3LSN
    15.6CLFS的使用方法
    15.6.1創建日志文件
    15.6.2添加CLFS容器
    15.6.3創建編組區
    15.6.4添加日志記錄
    15.6.5讀日志記錄
    15.6.6查詢信息
    15.6.7管理和備份
    15.7本章總結
    參考資料
    第16章事件追蹤
    16.1簡介
    16.2ETW的架構
    16.3提供ETW消息
    16.4控制ETW會話
    16.5消耗ETW消息
    16.6格式描述
    16.6.1MOF文件
    16.6.2WPP
    16.7NT內核記錄器
    16.7.1觀察NKL的追蹤事件
    16.7.2編寫代碼控制NKL
    16.7.3NKL的實現
    16.8GlobalLoggerSession
    16.8.1啟動GLS會話
    16.8.2配置GLS
    16.8.3在驅動程序中使用GLS
    16.8.4自動記錄器
    16.8.5BootVis工具
    16.9CrimsonAPI
    16.9.1發布事件
    16.9.2消耗事件
    16.9.3格式描述
    16.9.4收集和觀察事件
    16.9.5CrimsonAPI的實現
    16.10本章總結
    參考資料
    第17章WHEA
    17.1目標、架構和PSHED.DLL
    17.1.1目標
    17.1.2架構
    17.1.3PSHED.DLL
    17.2錯誤源
    17.2.1標準的錯誤源
    17.2.2通過ACPI表來定義錯誤源
    17.2.3通過PSHED插件來報告錯誤源
    17.3錯誤處理過程
    17.3.1WHEA_ERROR_PACKET結構
    17.3.2處理過程
    17.3.3WHEA_ERROR_RECORD結構
    17.3.4固件優先模式
    17.4錯誤持久化
    17.4.1ERST
    17.4.2工作過程
    17.5注入錯誤
    17.6本章總結
    參考資料
    第18章內核調試引擎
    18.1概覽
    18.1.1KD
    18.1.2角色
    18.1.3組成
    18.1.4模塊文件
    18.1.5版本差異
    18.2連接
    18.2.1串行端口
    18.2.21394
    18.2.3USB2.0
    18.2.4管道
    18.2.5選擇連接方式
    18.2.6解決連接問題
    18.3啟用
    18.3.1BOOT.INI
    18.3.2BCD
    18.3.3高級啟動選項
    18.4初始化
    18.4.1Windows繫統啟動過程概述
    18.4.2第一次調用KdInitSystem
    18.4.3第二次調用KdInitSystem
    18.4.4通信擴展模塊的階段1初始化
    18.5內核調試協議
    18.5.1數據包
    18.5.2報告狀態變化
    18.5.3訪問目標繫統
    18.5.4恢復目標繫統執行
    18.5.5版本
    18.5.6典型對話過程
    18.5.7KdTalker
    18.6與內核交互
    18.6.1中斷到調試器
    18.6.2KdpSendWaitContinue
    18.6. 出調試器
    18.6.4輪詢中斷包
    18.6.5接收和報告異常事件
    18.6.6調試服務
    18.6.7打印調試信息
    18.6.8加載調試符號
    18.6.9更新繫統文件
    18.7建立和維持連接
    18.7.1最早的調試機會
    18.7.2初始斷點
    18.7.3斷開和重新建立連接
    18.8本地內核調試
    18.8.1LiveKD
    18.8.2Windows繫統自己的本地內核調試支持
    18.8.3安全問題
    18.9本章總結
    參考資料
    第19章驗證機制
    19.1簡介
    19.1.1驅動程序驗證器
    19.1.2應用程序驗證器
    19.1.3WHQL測試
    19.2驅動驗證器的工作原理
    19.2.1設計原理
    19.2.2初始化
    19.2.3掛接驗證函數
    19.2.4驗證函數的執行過程
    19.2.5報告驗證失敗
    19.3使用驅動驗證器
    19.3.1驗證項目
    19.3.2啟用驅動驗證器
    19.3.3開始驗證
    19.3.4觀察驗證情況
    19.3.5WinDBG的擴展命令
    19.4應用程序驗證器的工作原理
    19.4.1原理和組成
    19.4.2初始化
    19.4.3掛接API
    19.4.4驗證函數的執行過程
    19.4.5報告驗證失敗
    19.4.6驗證停頓
    19.5使用應用程序驗證器
    19.5.1應用驗證管理器
    19.5.2驗證項目
    19.5.3配置驗證屬性
    19.5.4配置驗證停頓
    19.5.5編程調用
    19.5.6調試擴展
    19.6本章總結
    參考資料
    第四篇編譯器的調試支持
    第20章編譯和編譯期檢查
    20.1程序的構建過程
    20.1.1鏈接器
    20.1.2加載器
    20.2編譯
    20.2.1前端
    20.2.2後端
    20.3VisualC++編譯器
    20.3.1MSVC簡史
    20.3.2MSVC6
    20.3.3VS7和VS8
    20.3.4構建程序
    20.3.5調試
    20.4編譯錯誤和警告
    20.4.1錯誤ID和來源
    20.4.2編譯警告
    20.5編譯期檢查
    20.5.1未初始化的局部變量
    20.5.2類型不匹配
    20.5.3使用編譯器指令
    20.5.4標注
    20.5.5驅動程序靜態驗證器
    20.6標準標注語言
    20.6.1緩衝區標注符
    20.6.2高級標注符
    20.7本章總結
    參考資料.
    第21章運行時庫和運行期檢查
    21.1C/C++運行時庫
    21.1.1C運行時庫
    21.1.2C++標準庫
    21.2鏈接運行時庫
    21.2.1靜態鏈接和動態鏈接
    21.2.2lib文件
    21.3運行時庫的初始化和清理
    21.3.1介入方法
    21.3.2初始化
    21.3.3多個運行時庫實例
    21.4運行期檢查
    21.4.1自動的運行期檢查
    21.4.2斷言
    21.4.3_RPT宏
    21.5報告運行期檢查錯誤
    21.5.1_CrtDbgReport
    21.5.2_CrtSetReportMode
    21.5.3_CrtSetReportFile
    21.5.4_CrtSetReportHook493
    21.5.5_CrtSetReportHook2
    21.5.6使用其他函數報告RTC錯誤
    21.6本章總結
    參考資料
    第22章棧和函數調用
    22.1簡介
    22.1.1用戶態棧和內核態棧
    22.1.2函數、過程和方法
    22.2棧的創建過程
    22.2.1內核態棧的創建
    22.2.2用戶態棧的創建
    22.2.3跟蹤用戶態棧的創建過程
    22.3CALL和RET指令
    22.3.1CALL指令
    22.3.2RET指令
    22.3.3觀察函數調用和返回過程
    22.3.4跨特權級調用
    22.4局部變量和棧幀
    22.4.1局部變量的分配和釋放
    22.4.2EBP寄存器和棧幀
    22.4.3幀指針和棧幀的遍歷
    22.5幀指針省略
    22.6棧指針檢查
    22.7調用協定
    22.7.1C調用協定
    22.7.2標準調用協定
    22.7.3快速調用協定
    22.7.4This調用協定
    22.7.5CLR調用協定
    22.7.6x64調用協定
    22.7.7通過編譯器開關改變默認調用協定
    22.7.8函數返回值
    22.7.9歸納和補充
    22.8棧空間的增長和溢出
    22.8.1棧空間的自動增長
    22.8.2棧溢出
    22.8.3分配檢查
    22.9棧下溢
    22.10緩衝區溢出
    22.10.1感受緩衝區溢出
    22.10.2緩衝區溢出攻擊
    22.11變量檢查
    22.12基於Cookie的安全檢查
    22.12.1安全Cookie的產生、植入和檢查
    22.12.2報告安全檢查失敗
    22.12.3編寫安全的代碼
    22.13本章總結
    參考資料
    第23章堆和堆檢查
    23.1理解堆
    23.2堆的創建和銷毀
    23.2.1進程的默認堆
    23.2.2創建私有堆
    23.2.3堆列表
    23.2.4銷毀堆
    23.3分配和釋放堆塊
    23.3.1HeapAlloc
    23.3.2CRT分配函數
    23.3.3釋放從堆中分配的內存
    23.3.4GlobalAlloc和LocalAlloc
    23.3.5解除提交
    23.4堆的內部結構
    23.4.1結構和布局
    23.4.2HEAP結構
    23.4.3HEAP_SEGMENT結構
    23.4.4HEAP_ENTRY結構
    23.4.5分析堆塊的分配和釋放過程
    23.4.6使用!heap命令觀察堆塊信息
    23.5低碎片堆
    23.6堆的調試支持
    23.6.1全局標志
    23.6.2堆釋放檢查
    23.7棧回溯數據庫
    23.7.1工作原理
    23.7.2DH和UMDH工具
    23.7.3定位內存洩漏
    23.8堆溢出和檢測
    23.8.1堆緩衝區溢出
    23.8.2調用時驗證
    23.8.3堆尾檢查
    23.9頁堆
    23.9.1總體結構
    23.9.2啟用和觀察頁堆
    23.9.3堆塊結構
    23.9.4檢測溢出
    23.10準頁堆
    23.10.1啟用準頁堆
    23.10.2結構布局
    23.10.3檢測溢出
    23.11CRT堆
    23.11.1CRT堆的3種模式
    23.11.2SBH簡介
    23.11.3創建和選擇模式
    23.11.4CRT堆的終止
    23.12CRT堆的調試堆塊
    23.12.1_CrtMemBlockHeader結構
    23.12.2塊類型
    23.12.3分配堆塊
    23.13CRT堆的調試功能
    23.13.1內存分配序號斷點
    23.13.2分配掛鉤
    23.13.3自動和手動檢查
    23.14堆塊轉儲
    23.14.1內存狀態和檢查點
    23.14.2_CrtMemDumpAllObjectsSince
    23.14.3轉儲掛鉤
    23.15洩漏轉儲
    23.15.1_CrtDumpMemoryLeaks
    23.15.2何時調用
    23.15.3定位導致洩漏的源代碼
    23.16本章總結
    參考資料
    第24章異常處理代碼的編譯
    24.1概覽
    24.2FS:[0]鏈條
    24.2.1TEB和TIB結構
    24.2.2ExceptionList字段
    24.2.3登記異常處理器
    24.3遍歷FS:[0]鏈條
    24.3.1RtlDispatchException
    24.3.2KiUserExceptionDispatcher
    24.4執行異常處理函數
    24.4.1SehRaw實例
    24.4.2執行異常處理函數
    24.5__try{}__except()結構
    24.5.1與手工方法的對應關繫
    24.5.2__try{}__except()結構的編譯
    24.5.3範圍表
    24.5.4TryLevel
    24.5.5__try{}__except()結構的執行
    24.5.6_SEH_prolog和_SEH_epilog
    24.6安全問題
    24.6.1安全Cookie
    24.6.2SAFESEH
    24.6.3基於表的異常處理
    24.7本章總結
    參考資料
    第25章調試符號
    25.1名稱修飾
    25.1.1C和C++
    25.1.2C的名稱修飾規則
    25.1.3C++的名稱修飾規則
    25.2調試信息的存儲格式
    25.2.1COFF格式
    25.2.2CodeView格式
    25.2.3PDB格式
    25.2.4DWARF格式
    25.3目標文件中的調試信息
    25.3.1IMAGE_FILE_HEADER結構
    25.3.2IMAGE_SECTION_HEADER結構
    25.3.3節的重定位信息和行號信息
    25.3.4存儲調試數據的節
    25.3.5調試符號表
    25.3.6COFF字符串表
    25.3.7COFF符號例析
    25.4PE文件中的調試信息
    25.4.1PE文件布局
    25.4.2IMAGE_OPTIONAL_HEADER結構
    25.4.3調試數據目錄
    25.4.4調試數據
    25.4.5使用WinDBG觀察PE文件中的調試信息
    25.4.6調試信息的產生過程
    25.5DBG文件
    25.5.1從PE文件產生DBG文件
    25.5.2DBG文件的布局
    25.6PDB文件
    25.6.1復合文件
    25.6.2PDB文件布局
    25.6.3PDB簽名
    25.6.4Magic代碼
    25.6.5PDB_HEADER
    25.6.6根數據流——流目錄
    25.6.7頁分配表
    25.6.8訪問PDB文件的方式
    25.6.9PDB文件的產生過程
    25.7有關的編譯和鏈接選項
    25.7.1控制調試信息的編譯選項
    25.7.2控制調試信息的鏈接選項
    25.7.3不同鏈接和編譯選項的比較
    25.8PDB文件中的數據表
    25.8.1符號表
    25.8.2源文件表
    25.8.3節貢獻表
    25.8.4段信息表
    25.8.5注入源代碼表
    25.8.6幀數據表
    25.9本章總結
    參考資料
    第五篇調試器
    第26章調試器概覽
    26.1TX-0計算機和FLIT調試器
    26.2小型機和DDT調試器
    26.2.1PDP-1
    26.2.2TOPS-10操作繫統和
    DDT-10
    26.3個人計算機和它的調試器
    26.3.18086Monitor
    26.3.2SYMDEB
    26.3.3CodeView調試器
    26.3.4TurboDebugger
    26.3.5SoftICE
    26.4調試器的功能
    26.4.1建立和終止調試會話
    26.4.2控制被調試程序執行
    26.4.3訪問內存
    26.4.4訪問寄存器
    26.4.5斷點
    26.4.6跟蹤執行
    26.4.7觀察棧和棧回溯
    26.4.8彙編和反彙編
    26.4.9源代碼級調試
    26.4.10EnC
    26.4.11文件管理
    26.4.12接收和顯示調試信息
    26.4.13轉儲
    26.5分類標準
    26.5.1特權級別
    26.5.2操作繫統
    26.5.3執行方式
    26.5.4處理器架構
    26.5.5編程語言688
    26.6實現模型
    26.6.1進程內調試模型
    26.6.2進程外調試模型
    26.6.3混合調試模型
    26.6.4內核調試模型
    26.7經典架構
    26.7.1
    26.7.2遠程調試
    26.7.3多語言和多處理器架構調試
    26.8HPD標準
    26.8.1HPD標準簡介
    26.8.2動作點
    26.8.3進程和線程的表示和命名
    26.8.4命令
    26.9本章總結
    參考資料
    第27章VsDebug
    27.1架構和調試模型
    27.1.1架構概覽
    27.1.2遠程調試器
    27.1.3本地調試器
    27.2VS調試引擎
    27.2.1一套接口,多種實現
    27.2.2核心類
    27.3工作過程
    27.3.1開始調試32位本地程序
    27.3.2開始調試64位本地程序
    27.3.3訪問調試目標
    27.4使用斷點
    27.4.1根據名稱設置斷點
    27.4.2數據斷點
    27.4.3附加條件
    27.4.4附加操作
    27.5多線程調試
    27.5.1並行棧回溯
    27.5.2並行監視
    27.5.3凍結線程
    27.6EnC
    27.6.1應用過程
    27.6.2要求/ZI編譯選項
    27.6.3下次調用生效
    27.6.4應用失敗
    27.7設計期調試
    27.8使用符號服務器
    27.9定制調試事件
    27.9.1初始斷點
    27.9.2異常設置
    27.10本章總結
    參考資料
    第28章VSCode的調試擴展
    28.1簡介
    28.2四大技術
    28.3理解“擴展包”
    28.3.1包類型
    28.3.2安裝
    28.3.3工作原理
    28.4擴展包API
    28.4.1貢獻點
    28.4.2命令
    28.4.3激活事件
    28.5調試模型
    28.5.1貢獻調試器
    28.5.2宏觀架構
    28.6調試適配器
    28.6.1DA描述符工廠
    28.6.2進程內DA
    28.6.3vsdbg
    28.6.4OpenDebugAD7
    28.7機器接口
    28.7.1啟用用法
    28.7.2對話示例
    28.7.3MIEngine
    28.8調試Python程序
    28.8.1PTVSD
    28.8.2發起異常時中斷
    28.9本章總結
    參考資料
    第29章WinDBG及其實現
    29.1WinDBG溯源
    29.1.1KD和NTSD誕生
    29.1.2WinDBG誕生
    29.1.3發行方式
    29.1.4版本歷史
    29.2C階段的架構
    29.2.1功能模塊
    29.2.2遠程調試
    29.3重構
    29.3.1版本歷史
    29.3.2界面變化
    29.3.3模塊變化
    29.3.4發布方式和NTSD問題
    29.3.5文件
    29.4調試器引擎的架構
    29.4.1概覽
    29.4.2對外接口
    29.4.3DebugClient類
    29.4.4中間層
    29.4.5服務層
    29.4.6傳輸和連接層
    29.5調試目標
    29.5.1TargetInfo類
    29.5.2用戶態目標
    29.5.3內核態目標
    29.5.4轉儲文件目標
    29.6調試會話
    29.6.1建立調試會話
    29.6.2調試循環
    29.6.3等待和處理調試事件
    29.6.4繼續調試事件
    29.6.5結束調試會話
    29.7接收和處理命令
    29.7.1調試器的兩種工作狀態
    29.7.2進入命令狀態
    29.7.3執行命令
    29.7.4結束命令狀態
    29.8擴展命令的工作原理
    29.9本章總結
    參考資料
    第30章WinDBG用法詳解
    30.1工作空間
    30.2命令概覽
    30.2.1標準命令
    30.命令
    30.2.3擴展命令
    30.3用戶界面
    30.3.1窗口概覽
    30.3.2命令窗口和命令提示符
    30.4輸入和執行命令
    30.4.1要點
    30.4.2表達式
    30.4.3偽寄存器
    30.4.4別名
    30.4.5循環和條件執行
    30.4.6進程限定符和線程限定符
    30.4.7記錄到文件
    30.5建立調試會話
    30.5.1附加到已經運行的進程
    30.5.2創建並調試新的進程
    30.5.3非入侵式調試
    30.5.4雙機內核調試
    30.5.5本地內核調試
    30.5.6調試轉儲文件
    30.5.7遠程調試
    30.6終止調試會話
    30.6.1停止調試
    30.6.2分離調試目標
    30.6.3拋棄被調試進程
    30.6.4終止被調試進程
    30.6.5調試器終止或僵死
    30.6.6重新開始調試
    30.7理解上下文
    30.7.1登錄會話上下文
    30.7.2進程上下文
    30.7.3寄存器上下文
    30.7.4局部(變量)上下文
    30.8調試符號
    30.8.1重要意義
    30.8.2符號搜索路徑
    30.8.3符號服務器
    30.8.4加載符號文件
    30.8.5觀察模塊信息
    30.8.6檢查符號
    30.8.7搜索符號
    30.8.8設置符號選項
    30.8.9加載不嚴格匹配的符號文件
    30.9事件處理
    30.9.1調試事件與異常的關繫
    30.9.2兩輪機會
    30.9.3定制事件處理方式
    30.9.4GH和GN命令
    30.9.5實驗
    30.10控制調試目標
    30.10.1初始斷點
    30.10.2俘獲調試目標
    30.10.3繼續運行
    30.11單步執行
    30.11.1概覽
    30.11.2單步執行到指定地址
    30.11.3單步執行到下一個函數調用
    30.11.4單步執行到下一分支
    30.11.5追蹤並監視
    30.11.6程序指針飛躍
    30.11.7歸納
    30.12使用斷點
    30.12.1軟件斷點
    30.12.2硬件斷點
    30.12.3條件斷點
    30.12.4地址表達方法
    30.12.5設置針對線程的斷點
    30.12.6管理斷點
    30.13控制進程和線程
    30.13.1 lThrds程序
    30.13.2控制線程執行824
    30.13.3多進程調試
    30.14觀察棧
    30.14.1顯示棧回溯
    30.14.2觀察棧變量
    30.15分析內存
    30.15.1顯示內存區域
    30.15.2顯示字符串
    30.15.3顯示數據類型
    30.15.4搜索內存
    30.15.5修改內存
    30.15.6使用物理內存地址
    30.15.7觀察內存屬性
    30.16遍歷鏈表
    30.16.1結構定義
    30.16.2雙向鏈表示例
    30.16.3單向鏈表示例
    30.16.4dl命令
    30.16.5!list命令
    30.17調用目標程序的函數
    30.17.1調用示例
    30.17.2工作原理
    30.17.3條件和常見錯誤.
    30.18命令程序
    30.18.1流程控制符號
    30.18.2變量
    30.18.3命令程序示例
    30.18.4執行命令程序
    30.19本章總結
    參考資料
    附錄A示例程序列表
    附錄BWinDBG標準命令列表
    附錄CNT內核部件縮寫列表
    持之若痴——代跋
    內容簡介
    本書是國內當前集中介紹軟件調試主題的權威著作。本書第2卷分為5篇,共30章,主要圍繞Windows繫統展開介紹。第一篇(第1~4章)介紹Windows繫統簡史、進程和線程、架構和繫統部件,以及Windows繫統的啟動過程,既從空間角度講述Windows的軟件世界,也從時間角度描述Windows世界的搭建過程。第二篇(第5~8章)描述特殊的過程調用、墊片、托管世界和Linux子繫統。第三篇(第9~19章)深入探討用戶態調試模型、用戶態調試過程、中斷和異常管理、未處理異常和JIT調試、硬錯誤和藍屏、錯誤報告、日志、事件追蹤、WHEA、內核調試引擎和驗證機制。第四篇(第20~25章)從編譯和編譯期檢查、運行時庫和運行期檢查、棧和函數調用、堆和堆檢查、異常處理代碼的編譯、調試符號等方面概括編譯器的調試支持。第五篇(第26~30章)首先縱覽調試器的發展歷史、工作模型和經典架構,然後分別討論集成在Vi等
    作者簡介
    張銀奎 著
    張銀奎,國內知名的調試技術專家。畢業於上海交通大學信息與控制工程繫,長期從事軟件開發和研究工作,曾在英特爾工作13 年,對 IA-32 架構、操作繫統內核、驅動程序,尤其是對軟件調試有較深入的研究。



    "
     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部