team4-gdb-tutorial
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
快速学会使用gdb by Dai
* 编译时使用g++ -g xxx.cpp
* 进入gdb:gdb a.out
* 如果看RTE,直接输入r(run的缩写)就可以了。如果输入在文件里,输入r < a.in(Win下未必适用)
* 如果要下断点,在r之前输入b <行号>。例如150行想停下来,键入b 150,然后再r。
* 有时候RTE gdb没法正常捕捉,需要结合断点使用。
* 查看变量:p <变量>。watch也有,不过不常用(太多信息了会弄花眼……)
* 下一步是n(next的缩写)。这个下一步不会自动进入子程序,结合断点使用。
* 继续运行程序是c(continue的缩写)。
* 退出gdb是q(quit的缩写)。
还有一些小技巧:
* 不输入命令直接回车可以执行上一次执行的命令,对大量n的时候比较有效。
* gdb支持p gao(1, 2)的用法,可以查看返回值,也支持p 2*2之类的用法,反正p非常灵活(废话)。
快速学会使用gdb by Dai
- 编译时使用g++ -g xxx.cpp
- 进入gdb:gdb a.out
- 如果看RTE,直接输入r(run的缩写)就可以了。如果输入在文件里,输入r < a.in(Win下未必适用)
- 如果要下断点,在r之前输入b <行号>。例如150行想停下来,键入b 150,然后再r。
- 有时候RTE gdb没法正常捕捉,需要结合断点使用。
- 查看变量:p <变量>。watch也有,不过不常用(太多信息了会弄花眼……)
- 下一步是n(next的缩写)。这个下一步不会自动进入子程序,结合断点使用。
- 继续运行程序是c(continue的缩写)。
- 退出gdb是q(quit的缩写)。
还有一些小技巧:
- 不输入命令直接回车可以执行上一次执行的命令,对大量n的时候比较有效。
- gdb支持p gao(1, 2)的用法,可以查看返回值,也支持p 2*2之类的用法,反正p非常灵活(废话)。