在配置C++調試環境前,需確保系統為最新狀態并安裝必要的基礎工具:
sudo yum update -y,同步系統軟件包至最新版本,避免兼容性問題。sudo yum groupinstall -y "Development Tools"安裝GCC編譯器、Make工具等基礎開發組件,這是編譯C++程序的前提。C++程序需通過G++(GCC的C++擴展)編譯,運行sudo yum install -y gcc-c++安裝。安裝完成后,通過g++ --version驗證是否成功(顯示版本號即為成功)。
GDB是CentOS下最常用的C++命令行調試工具,運行sudo yum install -y gdb安裝。安裝后,通過gdb --version驗證(顯示版本號即為成功)。
調試需在編譯時包含調試符號(Debug Symbols),使用-g選項讓編譯器將源代碼信息嵌入可執行文件。例如,編譯hello.cpp:
g++ -g -o hello hello.cpp
其中,-g表示生成調試信息,-o hello指定輸出文件名為hello。若未加-g,GDB無法顯示源代碼細節。
通過gdb ./hello命令啟動GDB并加載可執行文件,進入GDB交互界面(提示符為(gdb))。
break main:在main函數開頭設置斷點;break hello.cpp:10:在hello.cpp文件的第10行設置斷點。run(或簡寫r)啟動程序,若程序需要命令行參數,可追加(如run arg1 arg2)。next(或簡寫n):執行下一行代碼,不進入函數內部;step(或簡寫s):執行下一行代碼,進入函數內部(用于調試函數邏輯)。print variable_name(或簡寫p variable_name),例如print num查看變量num的值。backtrace(或簡寫bt),顯示當前函數的調用層次(用于分析程序崩潰時的調用路徑)。continue(或簡寫c),讓程序繼續運行至下一個斷點或結束。quit(或簡寫q),退出調試會話。若需圖形化調試界面,可通過VS Code配置C++調試:
sudo yum install -y code安裝(需提前配置Microsoft yum源)。launch.json:
.vscode目錄(在項目根目錄下);launch.json文件,內容如下(以調試hello程序為例):{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/hello", // 可執行文件路徑
"args": [], // 命令行參數
"stopAtEntry": false,
"cwd": "${workspaceFolder}", // 工作目錄
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb", // GDB路徑
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
hello.cpp,在代碼行號左側點擊設置斷點,按下F5即可啟動調試(VS Code會自動調用GDB)。若項目需要特定版本的GCC(如C++17及以上特性需GCC 7+),可通過Devtoolset安裝:
sudo yum install -y centos-release-scl;sudo yum install -y devtoolset-10-gcc*;scl enable devtoolset-10 bash,此時g++ --version將顯示GCC 10版本。exit即可返回原環境。若需檢測內存泄漏、非法訪問等問題,可使用Valgrind工具:
sudo yum install -y valgrind;valgrind --leak-check=full ./hello(--leak-check=full表示詳細顯示內存泄漏信息)。