背景:多年的windows上的C++开发经验,熟练使用vs,现在想学习Linux上的C++
涉及到的工具:gcc g++ gdb
- 编译的时候指定编译器支持C++11
g++ -std=c++11 test.cpp -o result
- 如何开始调试?
编译的时候,要加一个-g的参数;然后执行gdb命令开始调试
g++ -std=c++11 -g test.cpp -o result
gdb result
运行后,提示符变为(gdb),可以在里面输入各种命令来进行调试
- 如何带参数启动程序?
下面这种方法是无效的
gdb result arg1 arg2
需要先用上面的方法启动调试,然后在gdb提示符下,输入这样的命令:
(gdb) set args arg1 arg2
- 如何查看代码、设置断点、查看断点?
在(gdb)提示符下:
查看代码: l
设置断点: break
查看断点: info break
删除断点: delete n (n是info中列出的序号)
- 如何Step in、step over、step out,对应vs的F11、F10、Shift+F11
在(gdb)提示符下:
开始调试(F5): r
step in(F11): step
step over(F10): next
step out(shift+F11): finish
继续调试(F5):continue
- 如何查看变量值,设置变量值,查看堆栈
在(gdb)提示符下:
打印变量值: p nCount
查看变量的类型: ptype strName
设置变量值: set nCount=20
查看堆栈: bt