Linux 下常用gdb的快捷鍵全

        所謂gdb,是Linux下一種常見的調試工具,在寫一些簡單的項目的時候還是很有益處的,但是如果項目較大,設計到很多進程之類的,不建議用gdb,而建議用printf函數來檢測問題所在。使用gdb調試,需要在gcc編譯時加上-g,例如gcc  file.c -g -o app.下面是gdb的一些常用的快捷鍵,僅供大家參考。

       (以下括號內均代表簡稱,若快捷鍵後面沒有跟括號,則代表此快捷鍵暫無簡稱)

         help(h),    按模塊列出命令行。

         list(l),     顯示代碼,查看當前代碼。

         start,開始運行。

         run(r), 全速運行。

         next(n),下一步,此下一步是指逐過程的下一步,相當於vs裏面的F10快捷鍵,調試時把一個函數當成一步。

         step(s), 下一步,此下一步是逐語句的下一步。相當於vs裏面的F11快捷鍵,調試時進入函數一步一步調試,但是僅可以跳進自己寫的函數裏面,不能跳進c標準庫函數                                裏面,例如fopen函數等等。

          print(p),打印

         break(b)+行號/函數名,在gdb裏分配的行號裏設置斷點,此行號不是你自己寫的函數所對應的行號。

         info(i),查看gdb內部局部變量的數值。

         info  breakpoints, 顯示斷點。

         enable breakpoints,啓用斷點。

          disable breakpoints,禁用斷點,一般都直接退出了,所以很少用。

          continue(c),繼續,在斷點前停下來。

         breaktrace(bt),顯示函數調用的棧楨和層級關係,(回調函數裏面觀察的最爲明顯)。

         frame(f)+棧楨號(此棧楨號通過breaktrace得來),切換函數的棧楨。雖然此時切換了棧楨,但若此時執行下一步,仍然是原來棧楨執行的下一步,而不是切換後的下                                  一步。

          set  var n=100.設置變量的值。

          Ctrl+p,上翻命令。

          quit,結束gdb。

          finish,結束當前函數,返回到函數的調用點。

          display,設置觀察變量,此後每次下一步都會顯示設置的變量的值。

          watch,被設置觀察點上的變量發生修改時,打印顯示。

          info(i) watch, 顯示觀察點。

          undisplay+編號,取消觀察變量。

           x,查看內存。

           core文件,可以看到程序斷之前執行到哪兒了,進而找出出錯的原因。但是Ubuntu裏面默認的core文件大小爲0,所以無法往裏面寫東西,如果想要打開它,只需要用 

                    ulimit -c  1024(給文件設置大小)開啓core文件即可,調試時用gdb app core.

           在fork()中,既有父進程又有子進程時,用set follow_fork_mode child來跟蹤子進程,用set follow_fork_mode parent來跟蹤父進程,但是這種在多進程裏面不是很好                    用,如果程序裏面是一個死循環的話,可能會導致無法結束,這時只能用kill來殺死進程號可以解決。


          

           

       

         

        

        


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章