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

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux(Ubuntu)下C语言编译与调试

發布時間:2024/3/12 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux(Ubuntu)下C语言编译与调试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux(Ubuntu)下C語言編譯與調試

編譯流程

gcc安裝命令

sudo apt install build-essential
  • vim/touch 創建源文件

    vim打開編輯源文件(.c結尾)

  • gcc -c 源文件

    默認生成同名不同后綴的.o文件,同一工程下不同文件需要獨自編譯

  • 將多個.o文件鏈接生成目標生成執行文件

    gcc 文件名.o 文件名.o … -o 生成文件名.exe

  • ./生成文件名.exe輸出

  • 調試流程

    gdb是一個由GNU開源組織發布的、UNIX/LINUX操作系統下的、基于命令行的、功能強大的程序調試工具。 對于一名Linux下工作的c/c++程序員,gdb是必不可少的工具。

    gdb安裝命令

    sudo apt install gdb
  • 啟動gdb

    在編譯時需要添加-g,否則生成目標文件中缺少調試信息

    1: gcc -g -c 1.c --> gcc 1.o -o 1.exe 2: gcc -g 1.c -o 1.exe // 編譯鏈接一起操作 3: gcc -g 1.c

    三種任選一種

    啟動命令

    1: gdb 1.exe 2: gdb -q 1.exe //不打印gdb版本信息,終端窗口干凈
  • 查看源碼

    (gdb) l 行號

    不加行號默認顯示10行,加行號顯示行號上面5行下面4行共10行

    需要查看其他文件中定義的函數時,在l后加上函數名即可定位至這個函數所在文件并查看附近的源碼。

    也可以使用(gdb) l 文件名:行號。

  • 設置斷點

    (gdb) b 行號

    運行到設置行號后停止

  • 查看斷點處情況

    (gdb)info breakpoints //顯示斷點信息Num //斷點編號Disp //斷點執行一次后是否有效。kep有效,dis無效Enb //當前斷點是否有效。y有效,n無效Address //內存地址What //位置delete (斷點編號) //刪除斷點
  • 運行

    (gdb) run //運行至第一個斷點處start //運行至main函數初始位置
  • 單步執行

    (gdb) next //下一步step //進入函數return // 結束函數continue //運行至下一斷點
  • 查看變量

    (gdb) print var //單次打印變量display var //執行一步打印一次變量watch var //變量發生改變時打印變量whatis var //查看變量類型
  • 結束調試

    (gdb) quit

  • 調試狀態下gdb的基本命令

    bt backtrace //顯示當前調用堆棧 info function //查詢函數 info locals //顯示當前堆棧頁所有變量 print gdb_test(22) //將22作為參數調用gdb_test()函數 b fn 1 if a > b //條件斷點設置 where //當前運行的堆棧的列表 layout split //顯示源代碼和反匯編窗口 info reg //顯示寄存器內容 info threads //查看當前所有線程 thread n //切換到id為n的線程

    總結

    以上是生活随笔為你收集整理的Linux(Ubuntu)下C语言编译与调试的全部內容,希望文章能夠幫你解決所遇到的問題。

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