Linux GDB C/C++調試基礎與提升
學習地址1:https://pan.baidu.com/s/1Hp6zixdLtrrzBWzUBscztQ 提取碼: vhtd
學習地址2:https://share.weiyun.com/dolcdxlA 密碼:9mu4hk
Linux GDB C/C++調試基礎與提升視頻教程分享,視頻+源碼+PPT下載
一、gdb的概述
gdb是GNU開源組織發(fā)布的一個強大的UNIX下的程序調試工具。
二、gdb的使用場景
啟動你的程序,可以按照你的自定義的要求隨心所欲的運行程序。
可讓被調試的程序在你所指定的調置的斷點處停住。(斷點可以是條件表達式)
當程序被停住時,可以檢查此時你的程序中所發(fā)生的事。
動態(tài)的改變你程序的執(zhí)行環(huán)境。
Debug模式:
代碼在編譯時會顯示出完整的調試信息以定位問題,編譯期間可以查看程序的運行時信息,且編譯期間不考慮對代碼的執(zhí)行進行優(yōu)化。生成的可執(zhí)行文件執(zhí)行速度偏慢。
Release模式:
代碼在編譯時不會顯示調試信息,并且編譯期間會優(yōu)化代碼的執(zhí)行。生成的可執(zhí)行文件執(zhí)行速度較快。
GDB主要在Debug模式下進行使用。
對照每個線程的上下文堆棧,搞清楚其邏輯,并結合主線程,看看每個線程是在何時啟動的,端口在何時啟動偵聽的,等等。做完這一步,關于 redis-server 的框架也基本清楚了。
接著我們可以選擇一個自己感興趣的命令,搞清楚 redis-cli 與 redis-server 命令的交互流程。
最后,如果對 redis-server 源碼中各種數據結構和細節(jié)感興趣,我們可以進一步深入到具體的代碼細節(jié)。
當然,不熟悉 GDB 的讀者看筆者這段操作流程比較困難,這是正常的,說明如果想通過調試去研究 Redis 這一款開源軟件,你需要去補充一點 GDB 調試的知識