在CentOS上調試使用GCC編譯的程序,通常使用 GDB(GNU Debugger)。以下是詳細的調試步驟和安裝方法:
首先,確保你的系統已經安裝了GCC。CentOS 7自帶的GCC版本較低(4.8.5),如果需要更高的版本,可以使用 devtoolset
來安裝。
# 安裝devtoolset-8
yum install -y devtoolset-8-*
然后,你可以選擇啟用特定的shell會話來使用特定版本的GCC:
# 為所有用戶改變gcc版本
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
# 啟用特殊的shell會話,以使用gcc8
scl enable devtoolset-8 bash
接下來,安裝GDB:
# 安裝依賴
yum -y install automake flex texinfo ncurses-devel readline-devel gcc-c++
# 下載源碼包
wget ftp://ftp.gnu.org/gnu/gdb/gdb-9.2.tar.gz
# 解壓并編譯
tar zxf gdb-9.2.tar.gz -c /tmp
cd /tmp/gdb-9.2
./autogen.sh
./configure --prefix=/usr/local
make && make install
編譯程序:使用GCC編譯你的C或C++程序,并生成可執行文件。例如:
gcc -g -o myprogram myprogram.c
這里的 -g
選項告訴GCC在可執行文件中包含調試信息。
啟動GDB:使用GDB啟動你的程序:
gdb myprogram
調試程序:
設置斷點:使用 break
命令設置斷點。例如,在 main
函數處設置斷點:
break main
運行程序:使用 run
命令運行程序:
run
單步執行:使用 step
命令單步執行程序:
step
查看變量:使用 print
命令查看變量的值:
print variable_name
繼續執行:使用 continue
命令繼續執行程序:
continue
退出GDB:使用 quit
命令退出GDB。
除了GDB,你還可以使用其他調試工具,如 CGDB,它是一個基于文本界面的GDB前端,提供更豐富的用戶界面。
# 安裝CGDB
yum -y install gcc gcc-c++ texinfo
git clone https://github.com/cgdb/cgdb.git
cd cgdb
./autogen.sh
./configure --prefix=/usr/local
make && make install
使用CGDB調試程序的基本步驟與GDB類似,但界面更加直觀和友好。
希望這些信息能幫助你在CentOS上成功調試使用GCC編譯的程序。如果有任何問題,請隨時聯系。