1. 程式人生 > >Linux gdb除錯列印完整字串

Linux gdb除錯列印完整字串

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

(gdb) print {變數名}

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

例如:

可以看到後面帶有省略號,內容沒有完整的顯示出來。

如何才能將需要print的內容完整顯示出來呢?

其實gdb 預設有一個最大顯示長度限制,可能通過show print elements命令檢視:

(gdb) show print elements
Limit on string chars or array elements to print is 200.
(gdb) 

可以看到最大顯示長度是200

那麼要完全顯示就要改變這個引數的值了,用set print elements 0 命令設定即可:

(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) set print elements 0
(gdb) show print elements
Limit on string chars or array elements to print is unlimited.
(gdb)

再print就可以完整顯示了

當然如果不想改這個引數,也可以通過以下命令顯示:

(gdb) p *[email protected]
$7 = "0"
(gdb) p *[email protected]
$8 = "0123"
(gdb) p *[email protected]
$9 = "0123456789abcdefghijklmnopqrstuvwxyz\n0123456789abcdefghijklmnopqrstuvwxyz\n0123456789abcdefghijklmnopqrstuvwxyz\n0123456789abcdefghijklmnopqrstuvwxyz\n0123456789abcdefghijklmnopqrstuvwxyz\n0123456789abcdefghijklmnopqrstuvwxyz\n0123456789abcdefghijklmnopqrstuvwxyz\n0123456789abcdefghijklmnopqrstuvwxyz\n0123456789abcdefghijklmnopqrstuvwxyz\n", '\000' <repeats 690 times>
(gdb) 

相關推薦

Linux gdb除錯列印完整字串

在使用gdb除錯過程中,經常需要檢視變數的值,最常用的方法: (gdb) print {變數名} 一般情況下,列印並不存在問題。但當一個字串比較長時,打印出來的內容不完整,內容的最後為"..." 例如: 可以看到後面帶有省略號,內容沒有完整的顯示出來。 如何才能

gdb 除錯列印完整字串

在使用gdb除錯過程中,經常需要檢視變數的值,最常用的方法: (gdb) print {變數名} 一般情況下,列印並不存在問題。但當一個字串比較長時,打印出來的內容不完整,內容的最後為"..." 例如:     (gdb) p (char*)0x

gdb除錯 列印輸出長變數的值到外部文本里

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linux gdb除錯程式

gdb 可執行檔案       進入gdb除錯環境,輸出介紹資訊         gdb -g 可執行檔案    進入除錯環境,可以不輸出介紹資訊      2、list命令 顯示除錯檔案程式碼(預設顯示10行,敲回車鍵繼續輸出10行...超出檔案總行數,會提示如:Line

Linux-gdb除錯

GDB是一個由GNU開源組織釋出的、UNIX/LINUX作業系統下的、基於命令列的、功能強大的程式除錯工具。他是學習指標、除錯程式非常有用的工具和方法 gdb的常見命令: 簡寫 全稱 備註

linux gdb 除錯多執行緒 多程序 顯示巨集

                一、gdb除錯多執行緒gdb)info thread 檢視當前程序的執行緒。 gdb)thread <ID> 切換除錯的執行緒為指定ID的執行緒。 gdb)break file.c:100 thread all  在file.c檔案第100行處為所有經過這裡的執行緒

linux gdb除錯

gdb除錯常用的命令: 1.顯示程式中的當前位置和表示如何到達當前位置的棧跟蹤:bt,  where,  info stack;這三個的功能都是一樣的,在程式崩潰之後使用該命令檢視堆疊的歷史記錄,很管用。 用法: bt n: 顯示程式棧頂的n幀資訊; bt -n:

arm-linux-gdb除錯工具的安裝與交叉編譯gdbserver

arm-linux-gdb除錯工具的安裝與交叉編譯gdbserver 分類:嵌入式 開發環境:LPC3250 開發板:安裝linux2.6.39; 交叉編譯工具:arm-none-linux-gnueabi-gcc pc的虛擬機器:Linux version 2.6.32.

linux gdb 除錯 coredump core 檔案,函式名稱是 問號

 google key: gdb問號 我的程式crash,有了coredump檔案,在Linux PC上用arm-linux-gdb debug it. The result is: #0  0x4022b178 in ?? () (gdb) bt #0 

Linux GDB除錯完全教程

本文將主要介紹linux下的強大除錯工具是怎麼完成這些工作的。 之所以要除錯程式,是因為程式的執行結果和預期結果不一致,或者程式出現執行時錯誤。  除錯的基本思想是:  分析現象 -> 假設錯誤原因 -> 產生新的現象去驗證假設 偵錯程式(如GDB)的

Linux gdb除錯多執行緒

一、多執行緒除錯 多執行緒除錯可能是問得最多的。其實,重要就是下面幾個命令: info thread 檢視當前程序的執行緒。 thread <ID> 切換除錯的執行緒為指定ID的執行緒。 break file.c:100 thread all  在file.c檔案第100行處為所有經過這

linux GDB除錯時的臨時變數,臨時指標

今天除錯遇到了個很麻煩的事情,為了復現一個棧完全被踩成0x01010101010101010101的問題較勁了好幾天 期間需要多次call 函式來模擬程序裡的函式呼叫 但是坑爹的是,這個read_xxx(int, int, int*) 有個坑爹的指標 前2個入參好辦,直接傳

linux gdb 除錯工具

進入 gdb 除錯模式後 help 檢視支援的所有命令 info thread 列出所有的執行緒 thread apply all bt 檢視所有執行緒的呼叫堆疊 thread ID 切換到指定

Linux程式設計——gdb除錯

    上一篇文章中,我們學習了gcc編譯器的使用。本文,我們就講解 gdb 偵錯程式(Debug)的使用,它可以幫助我們找出程式之中的錯誤和漏洞等等。     當程式編譯完成後,它可能無法正常執行;或許程式會徹底崩潰;或許只是不能

Linux入門級gdb除錯--C/C++語言

Linux上面一般使用gdb來進行程式碼的除錯,除錯我目前知道的方法是:首先將寫好的LinuxC/C++程式碼編譯成可執行檔案,注意編譯的時候生成目標檔案.o的時候必須加上-g引數,-g引數是表示生成的.o檔案是包含有列印資訊的,如果不加的話,無法進行除錯,因為沒有任何列印資訊。下面我將根據一個

Linux下使用gdb除錯C/C++程式

在筆者工作實踐中,使用gdb除錯C++程式和除錯C程式,他們稍有不同,下面是使用總結。 一、編譯選項 -g         生成除錯資訊 -gstabs+   以stabs格式生成除錯資訊,並且包含僅供gdb使用的額外除錯資訊生成除

linuxgdb除錯檢視原始碼

 GDB是GNU開源組織釋出的一個強大的UNIX下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像VC、BCB等IDE的除錯,但如果你是在UNIX平臺下做軟體,你會發現GDB這個除錯工具有比VC、BCB的圖形化偵錯程式更強大的功能。所謂“寸有所長,尺有所短”就是這個道理。 &nb

Linux C/C++】 第07講 gdb除錯工具詳解

     當你需要單步跟蹤除錯的時候,就必然會用到gdb工具,不同於VS方便的除錯方式,gdb的除錯並不是那麼的方便直觀。不要降低熱情,熟練以後你會發現Linux下的程式設計方式非常好用。       一、簡介   &

linux下的GDB除錯 詳細

  vim min.c #輸入min.c的內容 gcc min.c -o min -g #必須寫-g gdb -q min #除錯可執行程式 -q是為了阻止顯示版本資訊 l # list 顯示原始碼 一次10行 l # list 顯示原始碼 接著10行 l # list 顯示原始

linux】Valgrind工具集詳解(六):使用Valgrind gdbserver和GDB除錯程式

一、概述 在Valgrind下執行的程式不是由CPU直接執行的。相反,它執行在Valgrind提供的合成CPU上。這就是偵錯程式在Valgrind上執行時無法除錯程式的原因。 二、快速入門 在使用Memcheck工具時使用GDB除錯程式,啟動方式如下: 1、valgrind