日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

合并不同gdb下的相同要素_GDB调试学习

發布時間:2023/12/2 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 合并不同gdb下的相同要素_GDB调试学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 簡介

    GDB是GCC的調試工具。其功能如下:

    • 啟動程序,使程序按自定義形式運行;

    • 使程序停止指定斷點位置;

    • 程序停止后,檢查程序執行中的相應情況;

    • 動態改變程序執行環境。

  • gdb調試

    能進行GDB調試,一般在編譯過程中,需使用-g參數。如果不使用-g參數,則在gdb調試過程中,將不能得到程序的函數名、變量名等信息,而只能看見運行時內存地址。舉例如下:

    啟動gdb調試的方法有以下三種:

    常用的調試有以下幾種:

    • b // 停在程序的指定一行

    • b // 停在程序的某個函數處

    • b * // 停在編譯器生成的prolog代碼處。主要用于匯編調試

    • b * // 停在代碼的某個地址處

    • d // 刪除斷點

    • info b // 查看斷點

    • r:運行被調試的程序。如果之前沒有設過斷點,則執行完整個程序;如果設過斷點,則程序停在第一個斷點處。

    • c:繼續執行被調試程序,直到到下一個斷點,或程序整體結束。

    • b:設置斷點,包括以下幾種:

    • s:執行一行源程序的代碼,如果此行代碼中存在函數調用,則進入該函數。

    • n:執行一行源程序的代碼,此代碼中的函數調用執行完成。

    • si:類似于s命令,不同的是,si針對的是匯編指令,而s針對的是源代碼。

    • ni:類似于n命令,不同的是,ni針對的也是匯編指令,而n針對的是源代碼。

    • p/print:打印指定變量(臨時變量和全局變量)、字符串、表達式等值。

    • display …:設置程序中斷后想顯示的數據及其格式。如希望程序中斷后顯示即將被執行的下一條匯編指令,可使用如下命令:display /i

    • undisplay :取消先前的display設置,編號從1開始遞增。

    • i/info:顯示各類信息。

    • q:退出gdb調試環境。

    • help [命令名稱]:gdb幫助命令,提供對GDB各種命令的解釋說明。如果指定了“命令名稱”參數,則顯示該命令的詳細說明;若果沒有指定參數,則分類顯示所有GDB命令,共用戶進一步瀏覽和查詢。

    • cd dir:運行GDB,使用dir作為gdb的工作目錄。

    • se File:從File讀取符號表并把它作為可執行文件。

    • -write:開通enable往可執行文件和核心文件寫的權限。

    • clear:刪除一個斷點,這個命令需指定代行或者函數名。

    • set:設置變量的值。如set val = 2即為把2保存到val變量中;設置輸入參數使用set args a b c(a,b,c分別為對應輸入參數)。

    • watch:監視一個變量的值,不管它何時被改變。

    • rwatch:指定一個變量,如果這個變量被讀,則暫停程序運行,在調試器中顯示信息,并等待下一個命令調試。

    • Ctrl + c:在當前位置停止執行正在執行的程序,斷點在當前行。

    • ptype:顯示變量的類型

    • return:強制從當前函數返回。

    • whatis:顯示變量的值和類型。

    • xbreak:在當前函數的退出的點上設置一個斷點。

    • load:動態加載一個可執行文件到調試器。

    • ignore:忽略某個斷點指定的次數。

    • finish:繼續執行,直到當前函數返回。

    • disable:禁止斷點功能,這個命令需要禁止的斷點在斷點列表索引值作為參數。

    • bt:顯示程序堆棧信息。

    • l:l相當于list,從第一行開始列出源碼。

    • gdb filename // 其中filename為可執行文件名

    • gdb filename core // core是程序core dump產生的文件,產生core文件,需設置棧大小無線使用ulimit -c unlimited

    • gdb filename PID // PID一般是服務程序運行時的進程ID

    • gcc test.c -o test -g

    • g++ test.cpp -o test -g

這個是學校的電腦測試的,實在太餓了.我沒有寫完就截圖一張.

總結

以上是生活随笔為你收集整理的合并不同gdb下的相同要素_GDB调试学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。