每天學點GDB 3

2021-09-06 08:44:56 字數 560 閱讀 1685

預設情況下,日誌是沒有開啟的,所有的除錯資訊都會在螢幕中顯示,即預設是輸出到stdout中的。那麼有沒有可能將輸出到螢幕中的內容儲存到檔案裡呢。答案自然是肯定的,這裡面有個地方遇要注意一下子,具體會在下面的示例中提及。

將日誌檔案開啟,不指定檔名的話,預設的檔名是gdb.txt

gdb)set logging on

gdb)help set logging

在設定日誌的時候,有一點需要注意,如果日誌輸出過長,導致滾屏發生的話。程式會停下來等待人工干預,這樣在上一節中使用commands的目的就無法實現。

為了抑止滾屏時人工干預,需要輸入如下指令。

gdb)set pagination off

在本節最後提及的是在gdb中環境中執行shell裡的指令,如gdb的輸出內容過多,準備呼叫clear來清屏。

gdb)shell clear

如果源**發生變化了,想在gdb中直接呼叫相關指令進行編譯。

gdb)shell gcc -o hello -g hello.c

將最新的目標檔案再次載入到gdb

gdb)file hello

每天學點GDB(二)

預設情況下,日誌是沒有開啟的,所有的除錯資訊都會在螢幕中顯示,即預設是輸出到stdout中的。那麼有沒有可能將輸出到螢幕中的內容儲存到檔案裡呢。答案自然是肯定的,這裡面有個地方遇要注意一下子,具體會在下面的示例中提及。將日誌檔案開啟,不指定檔名的話,預設的檔名是gdb.txt。gdb set log...

每天學點GDB 2

在一中提到gdb最最基本的用法,在本節主要講述一下如何讓gdb在斷點處列印一下診斷資訊,但程式執行本身不會中斷。先稍微改一改源程式 include include int main int argc,char argv return 0 假設要在執行期間檢視i值的變化。如果是step by step...

每天學點GDB 8

使用gdb來進行stl容器的除錯 現代c 中stl使用的越來越普遍,較之其它型別,stl容器類的除錯顯得複雜度更好。本篇以map為例說明如何利用gdb來遍歷map中的各成員變數。原始碼如下 include include include using namespace std int main in...