在linux下调试c或c++。
今天自己用来下,下面总结点用法。
1、在编译的时候要加上 -g,好像不用也是可以的
gcc -g testc -o test
2、进入gdb
gdb -q test (这边的-q是去掉gdb自动输出的一些版权问题)
或者gdb
file text 这边进入gdb后,用file来导入需要调试的文件。
3、在gdb的命令模式下,其实和linux的命令差不多的就是前面成了(gdb),命令不同罢了。
list查看源码 list 5, 10 list test.c: get_sum
run运行程序 quit退出
break 加断点,可以是行的,函数的,在行上还能加上特定的条件
break 15 if i == 99 在15行的地方,当 i 等于 99 的时候断点
watch 存条件的断点。当某个变量满足条件的时候就断点
watch i == 99
查看断点信息:info breakpoints
enable/disable + 断点编号 启用/禁用
清楚断点clear/delete
4、查看信息
print 查看变量,还可以给变量赋值 print i = 200 (和 set variable i = 200一样)
print 还有个表达式@不太懂,也是输出变量的。
whatis 查看变量类型
5、程序控制
continue继续执行,直到下个断点
kill跳出程序
next/step单步调试语句 next把函数当成一个语句,而step则调进函数
nexti/stepi单步执行指令 区别和上面一样
说实话,还是没有ide的调试方便哈。不过功能已经很强大了!
今天自己用来下,下面总结点用法。
1、在编译的时候要加上 -g,好像不用也是可以的
gcc -g testc -o test
2、进入gdb
gdb -q test (这边的-q是去掉gdb自动输出的一些版权问题)
或者gdb
file text 这边进入gdb后,用file来导入需要调试的文件。
3、在gdb的命令模式下,其实和linux的命令差不多的就是前面成了(gdb),命令不同罢了。
list查看源码 list 5, 10 list test.c: get_sum
run运行程序 quit退出
break 加断点,可以是行的,函数的,在行上还能加上特定的条件
break 15 if i == 99 在15行的地方,当 i 等于 99 的时候断点
watch 存条件的断点。当某个变量满足条件的时候就断点
watch i == 99
查看断点信息:info breakpoints
enable/disable + 断点编号 启用/禁用
清楚断点clear/delete
4、查看信息
print 查看变量,还可以给变量赋值 print i = 200 (和 set variable i = 200一样)
print 还有个表达式@不太懂,也是输出变量的。
whatis 查看变量类型
5、程序控制
continue继续执行,直到下个断点
kill跳出程序
next/step单步调试语句 next把函数当成一个语句,而step则调进函数
nexti/stepi单步执行指令 区别和上面一样
说实话,还是没有ide的调试方便哈。不过功能已经很强大了!