深度 nginx gdb除錯詳解

2021-10-04 10:02:47 字數 3544 閱讀 7065

gdb - the gnu debugger,即gnu偵錯程式,該工具幫助你查詢乙個程式內部執行的過程

action

eg描述

bb ngx_epoll_process_events

在該函式入口打斷點

b file.c:n

b nginx.c:100

在檔案100行打斷點

info

info proc (breakpoints)

顯示跟蹤程序id(斷點)資訊cc

從乙個斷點執行到下乙個斷點nn

逐行執行**,在遇到函式時,不進入函式內部執行ss

逐行執行**,在遇到函式時,進入函式內部執行rr

run 直接調到斷點處

dd n

刪除斷點

bt列印呼叫堆疊(stack trace)

q退出gdb

1 啟動你的程式,指定任意可以影響程式行為的引數

2 讓程式在指定的條件停住.

3 測試程式停止的時候發生了什麼。

4 改變程式內部的變數,來改正程式的錯誤繼續執行

為了方便跟蹤,在nginx.conf 裡 設定worker_processes 為 1,然後命令列查詢nginx worker程序id

歡迎一起學習!

延伸閱讀

【深度】nginx strace和gstack原始碼除錯

nginx原始碼注釋專案

參考文件

1 gdb debugger

GDB除錯詳解

gdb除錯命令 linux下的c 程式開發,makefile,cmake等編譯工具最終都是呼叫gcc這一編譯工具組。一般要除錯某個程式,為了清晰地看到除錯的每一行 呼叫的堆疊資訊,變數名和函式名等資訊,需要除錯程式含有除錯符號資訊。那麼判斷乙個可執行程式是否帶有除錯資訊?gdb hello worl...

opengl 深度詳解 OpenGL之深度測試

深度緩衝是在三維圖形中處理影象深度座標 個人認為可以理解成距離我們觀察攝像機遠近的距離 的過程 from wiki 這聽起來不好理解啊啊啊啊。所以就舉個栗子嘍xd,就好比我可能要按由近到遠順序渲染兩個面 實際上是任意順序,我是說假如按這個順序 近處的麵先渲染,之後渲染遠處的面,但是如果沒有開啟深度測...

詳解深度優先搜尋

在圖 樹有關的問題中用處很大。1 基本框架 對於初學者 啊哈!演算法 紀磊著,人民郵電出版社 是一本不錯的書,比較兒童化,例子很形象,這裡的一些東西摘錄自這本書,在此致謝。但是我要吐槽一下作者使用陣列居然是從1開始的。這。很不計算機 基本框架 dfs的框架 void dfs int step for...