gdb 除錯列印完整字串

2021-07-24 17:47:26 字數 811 閱讀 4807

在使用gdb除錯過程中,經常需要檢視變數的值,最常用的方法:

(gdb) print

一般情況下,列印並不存在問題。但當乙個字串比較長時,列印出來的內容不完整,內容的最後為"..."

例如:

(gdb) p (char*)0x23b744a98

$19 = 0x23b744a98 "obbs:s:1.3:,,,,,,,,,,,,,,]}]}"

ok.這次列印已經能顯示整個字串所有內容。

總結:使用set print elements [n] 來更改列印字串的長度。

參考:

(gdb) help set print elements

set limit on string chars or array elements to print.

"set print elements 0" causes there to be no limit.

在使用gdb進行程式除錯時,經常遇到列印字串內容的情況。但是很遺憾,預設情況下,當待顯示的字串比較長時,gdb只會顯示部分字串內容,給程式的除錯帶來不便。

通過如下命令可以實現gdb中列印完整字串內容:

set print element 0

here is an example. if a program says

int *array = (int *) malloc (len * sizeof (int));

you can print the contents of array with

p *array@len

gdb 除錯列印完整字串

gdb show print elements limit on string chars or array elements to print is200 可以看到預設只會列印200個字元。這個可以通過前面的舉例驗證。使列印的字串長度不受限制。gdb setprint elements 0 gdb...

gdb列印字串長度設定

在使用gdb除錯過程中,經常需要檢視變數的值,最常用的方法 gdb print 一般情況下,列印並不存在問題。但當乙個字串比較長時,列印出來的內容不完整,內容的最後為 例如 gdb p char 0x23b744a98 19 0x23b744a98 obbs s 1.3 ok.這次列印已經能顯示整個...

gdb 列印字串長度 GDB入門教程之檢視變數

在學會了使用 gdb 啟動除錯和設定除錯斷點後,為了驗證程式的執行結果是否符合預期,經常需要檢視和驗證一些關鍵變數的值。gdb下可以使用print display coammand info等命令檢視變數。為了便於理解,本文所有內容使用下面的簡單 demo 進行舉例說明。include includ...