Linux(Ubuntu)下C语言编译与调试
生活随笔
收集整理的這篇文章主要介紹了
Linux(Ubuntu)下C语言编译与调试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux(Ubuntu)下C語言編譯與調試
編譯流程
gcc安裝命令
sudo apt install build-essentialvim/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语言编译与调试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电商网站业务流程图示例
- 下一篇: Linux环境下查看日志文件命令详解