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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux gdb调试器

發布時間:2025/3/15 linux 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux gdb调试器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
gdb的啟動 --gdb 程序名 [corefile] --corefile是可選的,但能增強gdb的調試能力 --強調:啟動gdb必須在編譯命里加上"-g"參數,"-g"一般寫在遍歷命令的靠前位置,例如--gcc -Wall -g -o hello.o -c hello.c

?

"-q"命令 --命令格式:gdb -q 執行程序 --不顯示gdb版本信息

?

gdb命令集合 --直接運行調試命令 gdb 程序名 --"run"開始調試程序 --"where"顯示導致段錯誤的執行函數樹 --"list[m,n]"m,n是要顯示包含錯誤首次出現位置的起始行和結尾行。不帶參數的list命令將顯示附近的10行代碼 --"print"print 變量,表達式print 'filename'::變量或表達式 --''是必須的,以便讓gdb知道指的是一個文件名。 print funcname::變量或表達式 --"whatis"告訴你變量的類型 --"ptype"告訴你結構的定義 --"break"設置斷點break linenum(行號)break funcname(函數名)break filename:linenumbreak filename:funcname --"continue"從斷點以后繼續執行,并非單步 --"delete"刪除一個端點語法格式:delete 斷點編號斷點編號是由"info break"獲取的 --"info break"查看已設置斷點的信息 --"set variable"命令格式是:set variable varname=valuevarname是變量名稱,value是變量的新值

?

gdb單步調試 --"step"當遇到一個函數的時候,step將進入函數,每次執行一條語句,相當于vs中的F10命令 --"next"當遇到一個函數的時候,next將執行整個函數,相當于vs中的F5命令 --"return "相當于在函數中直接return ,并且將value作為返回值返回給調用者。 --如果需要重復執行一條命令,不需要每次都鍵入命令,gdb記住了最后一個被執行的命令,只要簡單的按 enter鍵就可以重復執行最后的命令

?

gdb調試帶參數的程序 進入gdb調試界面 輸入參數命令set args 后面加上程序所要用的參數,注意,不再帶有程序名,直接加參數,如: set args a.txt b.txt 回車后輸入 run

?

gdb多文件調試 如果調試的文件不在當前目錄下,需要將文件目錄加載到程序中,如果在當前目錄下不需要加載目錄 --命令行 "DIR ../common" 在文件中添加斷點 --命令行 "bread helper.c:68" 在helper.c文件的第68行加斷點 跳出循環: until LineNum 執行到一個比當前行號大的行,或者也可以指定在當前frame中的某一行跳出函數: finish 執行,直到選定的frame執行結束,然后打印返回值,將其放入歷史值中,停止 gdb多線程調試 在多線程編程中,經常會遇到死鎖問題,這時候需要使用pstack命令來查看線程在哪個函數中鎖住了

?

轉載于:https://www.cnblogs.com/zhanggaofeng/p/5775591.html

總結

以上是生活随笔為你收集整理的Linux gdb调试器的全部內容,希望文章能夠幫你解決所遇到的問題。

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