擴充套件gdb命令

2021-06-02 15:14:27 字數 539 閱讀 3304

在gdb中除錯c++**,**中用到了stl的容器,要在gdb中顯示容器物件的內容的命令比較冗長,如下所示:

print *(farmers._m_impl._m_start)@5

有乙個名為farmers的vector, 顯示容器物件farmers前5個元素。

每次都寫這個命令很煩,就自定義乙個gdb命令,在乙個檔案(命名為gdb.conf)中定義乙個自己的命令:

define pstl

print *($arg0._m_impl._m_start)@$arg1

end

然後在gdb中使用命令source讀入這個檔案:

source /path/to/file/gdb.conf

讀入檔案後就可以在gdb中使用自己定義的命令了,使用如下:

pstl farmers 3

輸出容器物件farmers的前3個元素

gdb除錯擴充套件指令碼開發

最近遇到個bug,資料回檔一天,查詢發現是資料沒有存檔成功造成的,還好用gcore留了屍體,至於為什麼存檔不成功我這裡不 了,主要是從core檔案要恢復這一天的資料,裡面有些存檔還是挺重要的,除錯進去發現需要把乙個list中的資料恢復到資料庫中,這樣我需要根據記憶體資料寫乙份sql指令碼來恢復,首先...

gdb除錯PHP擴充套件錯誤

有時候,使用php的第三方擴充套件之後,可能會發生一些錯誤,這個時候,可能就需要更底層的方式追蹤除錯程式發生錯誤的地方和原因,熟悉linux下c程式設計的肯定不陌生gdb 首先,使用ulimit c命令,檢視系統是否會生成 core檔案。返回結果可能是0 ulimit c當返回結果為0時,說明系統不...

gdb除錯PHP擴充套件錯誤

有時候,使用php的第三方擴充套件之後,可能會發生一些錯誤,這個時候,可能就需要更底層的方式追蹤除錯程式發生錯誤的地方和原因,熟悉linux下c程式設計的肯定不陌生gdb 首先,使用ulimit c命令,檢視系統是否會生成 core檔案 sh 返回結果可能是0 ulimit c當返回結果為0時,說明...