debug file

复查
This commit is contained in:
DoubleC 2014-10-11 22:07:08 +08:00
parent d858744132
commit 685aa027bd

View File

@ -1,6 +1,6 @@
使用GDB命令行调试器调试C/C++程序
============================================================
没有调试器的情况下编写程序时最糟糕的状况是什么编译时跪着祈祷不要出错用生命在运行可执行程序blood offering不知道怎么翻译好...或者在每一行代码间添加printf("test")语句来定位错误点如你所知编写程序时不使用调试器的话是不利的。幸好linux下调试还是很方便的。大多数人使用的IDE都集成了调试器但linxu著名的调试器是命令行形式的C/C++调试器GDB。然而与其他命令行工具一致DGB需要一定的联系才能完全掌握。这里我会告诉你GDB的基本情况及使用方法。
没有调试器的情况下编写程序时最糟糕的状况是什么编译时跪着祈祷不要出错用生命在运行可执行程序blood offering不知道怎么翻译好...或者在每一行代码间添加printf("test")语句来定位错误点如你所知编写程序时不使用调试器的话是不利的。幸好linux下调试还是很方便的。大多数人使用的IDE都集成了调试器但linxu著名的调试器是命令行形式的C/C++调试器GDB。然而与其他命令行工具一致DGB需要一定的练习才能完全掌握。这里我会告诉你GDB的基本情况及使用方法。
###安装GDB###
@ -48,7 +48,7 @@ Fedora,CentOS 或 RHEL
$ gdb -tui [executable's name]
使用”-tui“选项可以将代码现实在一个窗口内(被称为”文本接口”),在这个串口内可以使用光标来操控同时在下面输入GDB shell命令。
使用”-tui“选项可以将代码显示在一个窗口内(被称为”文本接口”),在这个窗口内可以使用光标来操控同时在下面输入GDB shell命令。
![](https://farm3.staticflickr.com/2947/15397534362_ac0b5692c8_z.jpg)
@ -72,7 +72,7 @@ Fedora,CentOS 或 RHEL
这样程序循环97次之后停留在“a++”语句上。这样是非常方便的避免了我们需要手动循环97次。
最后也是很重要的是,我们可以设置一个“观察断点”,当这个被观察的变量发生变化时,程序会被停止。
最后也是很重要的是,我们可以设置一个“观察断点”,当这个被观察的变量发生变化时,程序会被停止。
watch [variable]
@ -125,7 +125,7 @@ gdb中大多数的单词都可以简写为一个字母。
如其他优秀的调试器一样,我们可以单步调试:
    step
step
使用如上命令,运行到下一条语句,也可以进入到一个函数里面。或者使用:
@ -147,7 +147,7 @@ gdb中大多数的单词都可以简写为一个字母。
quit
总结有了GDB编译是不用祈祷上帝了,运行是不用血祭再也不用printf(“test“了。当然这里所讲的并不完整而且GDB的功能远不止这些。所以我强烈建议你自己更加深入的学习它。我现在感兴趣的是将GDB整合到Vim中。同时这里有一个[备忘录][2]记录了GDB所有的命令行以供查阅。
总结有了GDB编译时不用祈祷上帝了,运行时不用血祭再也不用printf(“test“了。当然这里所讲的并不完整而且GDB的功能远不止这些。所以我强烈建议你自己更加深入的学习它。我现在感兴趣的是将GDB整合到Vim中。同时这里有一个[备忘录][2]记录了GDB所有的命令行以供查阅。
你对GDB有什么看法你会将它与图形调试器对比吗它有什么优势呢对于将GDB集成到Vim有什么看法呢将你的想法写到评论里。