先在命令行中输入g++看看有没有反应,没有就百度一下如何添加。
常见编译选项
gcc test.c//编译为a.exe文件
gcc test.c -o test //编译为test.exe文件
gcc test.c -o test -Wall -ansi -pedantic //编译并检查错误(一般wall即可)
gcc test.c -o test -lm //链接数学库(C++不用)
还有一些编译选项
比如-DDEBUG,可以编译程序中
#ifdef DEBUG
#endif
的部分。
-O1,-O2,-O3为编译器自动对代码进行优化。
gdb初探
使用方法:用gcc编译时,加上-g选项,然后 输入
注意:在gdb中逐句调试时,显示的语句是下一步将要运行的语句(目前尚未运行)
gdb test.exe
gdb常见命令
查看帮助/查看某一命令帮助
help
help xxx
查看程序源代码某一行
list 15
l 15
li 15
lis 15
如上,gdb命令可以简写,前几个字母就可以。不过为了方便记忆,还是建议用完整的命令
运行程序
run test.exe
设置断点和继续运行
break main
break 14
continue
如上,设置断点可以写函数名称或者函数,然后用run命令到了断点就会停下来。用continue命令就能继续。
删除/临时禁止/恢复/全部断点 删除某一行断点
delete break
disable break
enable break
clear 15
逐句运行
step
next
方法:首先设置断点,然后运行,在断点处停止后,调用这两句。区别是:如果当前行涉及函数调用,next会将其作为一个整体执行完毕,而step是进入函数内部。
另外,在gdb中,如果直接按Enter键,等价于再次执行上一条命令。所以之后只要不停按Enter就好了。
在程序中运行到指定行
until 15
注意使用这条语句和上面一样,是要运行了程序而且停止在断点处才可以使用。
gdb具体应用之打印变量值
打印当前某一变量值
print i
显示目前所有局部变量的值
info locals
之后每一行运行都打印该变量的值
display x
display x+1
列出当前所有正在display的变量
info display
**
退出gdb
quit
还有很多高级功能,先不学习了。