在Debian系统中,使用GCC编译器进行调试和测试通常涉及以下几个步骤:
sudo apt-get update
sudo apt-get install build-essential gdb
-g
选项来包含调试信息。这将帮助调试器识别源代码中的变量和函数。例如:gcc -g -o program program.c
gdb program
break
命令在代码中设置断点。例如,在 main
函数的第一行设置断点:break main
run
命令启动程序。GDB将执行代码,直到遇到断点:run
next
:逐行执行程序,跳过当前行并直接进入下一行。step
:进入当前行的函数调用中。print
命令来观察变量的值。例如,打印变量 x
的值:print x
backtrace
命令查看函数调用堆栈。这个命令可以帮助追踪程序的调用关系:backtrace
continue
命令让程序从当前断点继续执行,直到遇到下一个断点或程序结束:continue
quit
命令退出GDB:quit
list
或 l
:显示源代码。info locals
:显示当前函数的所有局部变量。info args
:显示当前函数的参数名及值。watch
:逻辑表达式,当表达式为真时,自动停下来。finish
:结束当前函数并返回调用者。-pg
选项:gcc -pg -o my_program my_program.c
./my_program
gprof
分析性能数据:gprof ./my_program gmon.out > analysis.txt
这将生成一个名为 analysis.txt
的文件,其中包含程序性能分析的结果。wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/byte-unixbench/UnixBench5.1.3.tgztar
tar -xf UnixBench5.1.3.tgz
cd UnixBench
make ./Run -c 1 # 测试单核性能
./Run -c 2 # 测试多核性能
wget https://github.com/Fibonacci43/SuperPI/archive/refs/heads/main.zip
unzip main.zip
cd SuperPI-main
gcc -O3 -funroll-loops -fomit-frame-pointer pi_fftcs.c -lm -o pi_css5
./pi_css5 # 计算小数点后20位圆周率
-O0
, -O1
, -O2
, -O3
等,运行程序并记录执行时间或资源使用情况,比较不同优化级别下的性能差异。gcc -O0 -o my_program my_program.c
gcc -O2 -o my_program my_program.c
./my_program
通过以上步骤,您可以在Debian系统上使用GCC进行全面的调试和测试,从而优化和调优您的C/C程序。