列印所有堆疊資訊 gdb 用gdb除錯caffe

2021-10-14 16:19:25 字數 760 閱讀 7734

1 用gdb除錯的好處

gdb是除錯c++**很有用的工具。在caffe上也是如此。用gdb除錯caffe對於初學者來說可以更好的了解caffe的整個內部微觀機制。並且是更有效理解caffe原始碼的好辦法。

2 準備工作

只有將caffe原始碼以debug模式進行編譯才能夠進行除錯,否則編譯器會進行優化忽略debug infomation,這樣無法設定斷點進入原始碼內部。

make clean;

make all -j12;

到此為止,linux下的caffe原始碼就編譯成功了。

3 邊執行邊debug

//用gdb除錯

gdb ../../build/tools/caffe

//設定引數

set args train -solver lenet_solver.prototxt

//設定斷點

b base_conv_layer.cpp:120

//run起來

r

//如果到了斷點的地方停下來,那麼進入

s

//單步除錯

n

//列印

p

//展示**

l

//檢視堆疊

bt

//檢視某個堆疊詳細資訊

info 1

GDB堆疊跟蹤

gdb堆疊跟蹤的方法 程式 呼叫堆疊 是當前函式之前的所有已呼叫函式的列表 包括當前函式 每個函式及其變數都被分配了乙個 幀 最近呼叫的函式在 0 號幀中 底部 幀 要列印堆疊,發出命令 bt backtrace 回溯 的縮寫 gdb bt 0 0x80483ea in wib no1 8,no2 ...

gdb檢視記憶體中所有的資訊

他們會把做核心的人當成無所不能的,認為你們對反編譯啥的都應該會。俗話說的好,人要活成別人想要的樣子嘛 看下如何停止程序,讓大家看到記憶體中到底是啥樣子 簡單的print globala當然能輸出來變數globala的位址以及這個位址中的值,但是如果這裡是乙個鍊錶,能通過程式設計的方法把這裡的數值給d...

gdb列印記憶體位元組

x 16bx address 單位元組16進製制列印address位址處的長度為16的空間的記憶體,16表示空間長度,不是16進製制,x表示16進製制,b表示byte單位元組 詳解 x n f u是可選的引數。n是乙個正整數,表示需要顯示的記憶體單元的個數,也就是說從當前位址向後顯示幾個 記憶體單元...