diff --git a/translated/tech/How-to-debug-a-C or C++ program with GDB command-line debugger.md b/translated/tech/How-to-debug-a-C or C++ program with GDB command-line debugger.md index e30ff8d9c6..b96bcab09b 100644 --- a/translated/tech/How-to-debug-a-C or C++ program with GDB command-line debugger.md +++ b/translated/tech/How-to-debug-a-C or C++ program with GDB command-line debugger.md @@ -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有什么看法呢?将你的想法写到评论里。