pmap 列印命令格式
1、std::maptest_map
pmap test_map in tint
2、class *test_class;
std::maptest_map
pmap test_map int 即可,
pmap test_map int *test_class列印好像會有問題
pvector、plist、pstring
3、b svrsessioncore.cpp:1515對1515行斷掉除錯
設定條件斷點b 17 if i == 8.在
17行設定乙個斷點
,並且只有
i==8
的時候才會觸發.
4、b dahua::netframwork::cnethandle::unregister
對某個函式進行斷掉除錯
5、r開始執行
6、c遇到斷點,繼續執行
8、f 4當前堆疊的第四層
9、gdb attach pid 進行執行狀態的程式進行除錯,進入之後執行c,gdb –p pid這種方式進入的好像不需要執行任何命令
10、info symbol *0xf5638c70
11、p *(dahua::streammedia::crtpdatasrc*)0xf5638c70
12、s(step)進入函式體,類似於windows的f11
13、finish退出函式體,類似於windows的f10
14、gdb attach pid,然後執行generate-core-file,手動產生core檔案
15、set print pretty可以將列印資訊格式化,這樣p this的時候看到的資訊更為方便
16、x命令檢視記憶體資訊
x/100c 0xa61aea00-100檢視0xa61aea00位址前面100個位元組的字元資訊,100c表示檢視100個位元組的記憶體資訊,c表示按照字元形式列印出來
x/64x addr 表示列印addr位址記憶體內容
,每次列印64個,16進製制形式列印
x/64s 0xf5638c70以字元形式列印64個字元
17、x/100x 0xf5638c70以16進製制列印100個字元,16、17經常列印前面位址資訊,直接在位址前面加減即可,如x/100x 0xf5638c70-100,表示列印前面乙個0xf5638c70位址前面100個位元組的內容
18、set logging file mts.txt設定除錯資訊日誌生成檔名,不這麼操作的話,預設gdb.txt
set logging on開啟日誌
…//執行命令
set logging off//關閉日誌
19、info sharedlibrary檢視動態庫的除錯資訊載入情況,如果有
*號,表示動態庫載入失敗? 20
、gdb –p pid
進去之後,執行
call
malloc_trim(0)
,清快取 21
、disassemble
反彙編
22、檢視當前斷點資訊info b
delete 刪除當前所有的斷點
delete 5刪除序列號為5的斷點,通過上面info b可以知道當前斷點資訊
disable 5使斷點5失效
enable 5使斷點5重新生效
23、r開啟,
c遇到斷點調過之後繼續執行
s進入函式內部
finish跳出函式堆疊
24、info args 列印當前函式名和函式引數
info locals列印區域性變數資訊
25、gdb attach pid進入執行的程式當中,然後執行generate-core-file生成core檔案,實際直接執行gcore pid就好了,程式還不會掛掉(kill -6 pid生成core會掛掉)
26、set print elements 0在列印長字串的時候,gdb預設是列印200個字元,如果字串超過了200,就會顯示…通過這個命令可以設定成列印無限長度的字串
27、在gdb除錯狀態下,輸入shell之後,可以和linux環境一樣,執行各種命令,比如上面的shell pmap pid28、watch
watch :為表示式(變數)expr設定乙個觀察點。一旦表示式值有變化時,馬上停住程式。
rwatch :當表示式(變數)expr被讀時,停住程式。
awatch :當表示式(變數)的值被讀或被寫時,停住程式。
info watchpoints:列出當前所設定了的所有觀察點。(csdn部落格上有專門的介紹,對於定位踩記憶體有一定的用處)
29、call +函式名,強制程式執行函式,比如執行call malloc_trim(0),釋放應用的快取空間
30、碰到過乙個棧溢位崩潰問題,這種情況下堆疊有20000+棧幀,這種情況下,bt的話,基本無法檢視,輸入命令bt -20表示方向檢視最開始20幀,bt 20順向檢視20幀堆疊
gdb除錯命令
一 gdb常用命令簡介 rrun 執行.程式還沒有執行前使用 c cuntinue 執行到下一斷點處 qquit 退出tab tab命令補全功能 h help幫助s step 跟入函式 nnext 執行下一行的 如果是函式呼叫,也當作一行 執行到此函式返回 b breakpoint 設定斷點,用法 ...
GDB除錯命令
gdb的命令很多,本文不會全部介紹,僅會介紹一些最常用的。在介紹之前,先介紹gdb中的乙個非常有用的功能 補齊功能。它就如同linux下 shell中的命令補齊一樣。當你輸入乙個命令的前幾個字元,然後輸入tab鍵,如果沒有其它命令的前幾個字元與此相同,shell將補齊此命令。如果有 其它命令的前幾個...
GDB除錯命令
用gdb除錯程式 gdb概述 gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這...