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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

gdb 查看结构体地址内容_程序员的术与道:术——gdb基本操作

發布時間:2023/12/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gdb 查看结构体地址内容_程序员的术与道:术——gdb基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.gdb是什么

前面剛剛介紹了gcc,既然提到了gcc,下一個必須要提的是gdb。gdb同樣是GNU出品的一款功能強大的工具,橫掃linux世界。

gdb是一款調試工具,其功能之強大,深入使用之后你就會有感受。同gcc一樣,隨著gdb的使用你會有一種掌控一切的感覺。因為gdb更接近于底層,和操作系統的關系是那樣近。其操作的方式是那樣原始、野蠻,換句話說,更難但是學到的東西更多。

gdb是一款調試工具,用于軟件代碼調試和跟蹤,主要是為了尋找軟件bug和測試功能。通過使用gdb調試軟件,能夠使你深入到軟件內部,進入到程序運行世界,同軟件一起執行。等你調試過幾次后,你就會對計算機順序執行的理念深入感觸。

當然在你編譯軟件的時候一定要加上-O0和-g參數,不然很多細節會被優化。

總而言之,gdb是用來調試代碼,跟蹤定位問題的。

2.gdb有什么用

gdb是提升代碼能力最重要的工具。

gdb的作用其實就是調試代碼的作用,調試代碼對于一個軟件工程師來說至關重要。提升自己工程能力分為兩步:

  • 閱讀源碼
  • 調試代碼
  • 閱讀源碼就像是看書,更多的是理論或者抽象邏輯層面的。但代碼要想落地,變得真實起來,或者你想對軟件有一個感性的認識就必須進行調試。無論是python、java也好,調試都是至關重要的。但那些語言和c比起來,或者說那些語言的調試工具和gdb比起來,gdb調試的c代碼更加接近底層,更加接近操作系統,更加接近真實的軟件世界。

    目前的軟件世界還是構建在c上的,掌握了調試C語言代碼你才能真正了解這個軟件世界。(我是這樣想的,也是這樣做的。)正是由于C語言的特殊性以及調試代碼的重要性,才越發凸顯出gdb的重要性來。gdb在一個軟件工程師的技術晉升之路上發揮著難以替代的作用。

    以下提到的操作都是gdb的基本操作,真的值得你花幾分鐘大致了解一下。然后再自己找個程序親自調試一下,哪怕是最簡單的也好。編程從來都是會了1,然后循壞百、千、萬、億。

    3.gdb基本操作

    • 基本操作使用gdb啟動調試
    programgdb program添加斷點打印變量內容跟蹤程序執行流程,了解程序邏輯b main #在main函數入口加地址b main.c:3 #在main.c文件第3行加斷點b *0x0000987c #在地址0x0000987c處加斷點r #啟動程序c #繼續運行直到遇到斷點n #單步運行bt #查看調用堆棧i #列出相關信息i locals #列出所有局部變量i shared #列出所有共享庫i thread #列出所有線程p index #打印變量index的值
    • 調試可執行文件
    gdb program
    • 如果有參數使用
    set args arg1 arg2
    • 調試進程,調試進程要先找到進程號并且進程要包含符號表
    ps -ef |grep program #找到進程號gdb -q attach pid
    • 調試動態庫

    調試動態庫要先寫測試用例,然后就跟調試可執行文件一樣了。

    • 調試核心轉儲文件
    gdb coredumpfile1

    以上就是gdb的基本操作,說的言簡意賅,但基本操作都涵蓋了,都是我實際的使用經驗。更多的是需要你自己去調試,因為真正有價值的是你想了解的代碼,而不是工具本身。工具會使用就好了。

    總結

    以上是生活随笔為你收集整理的gdb 查看结构体地址内容_程序员的术与道:术——gdb基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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