繁体   English   中英

在Linux中调试C ++程序

[英]Debug C++ program in Linux

我写了一个简单的C ++程序,如下所示:

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello.";
    return 0;
}

现在我想调试它。 那么它的命令是什么,所以我的控制权到达每一行?

您可以使用gdb

$ gdb hello

这将启动gdb并提示您下一步该做什么。 next命令执行一行源并在下一行停止。

我发现了一个可能有用的基本GDB教程

不要忘记使用-g选项编译源代码。 像这样: g++ -g helloWorld.cc这将创建一个a.out可执行文件。 您将能够使用gdb ./a.out命令调试a.out exe。 您可以使用它的另一个工具是ddd,基本上是gdb的GUI。

祝好运

我一直认为emacs为gdb提供了一个非常友好的前端...

例如

  • %g ++ hello.cc -g -o hello
  • emacs hello.cc
  • [ 在Emacs中 ] Escape-x gdb
  • Emacs会说“运行gdb(像这样):gdb”。
  • 添加二进制名称(“hello”)。 (例如“运行gdb(像这样):gdb hello”。)
  • 转到hello.cc缓冲区。
  • 使用emacs命令'gud-break'在hello.cc缓冲区中设置gdb中的断点。 (通常绑定到“Cx空间”。)
  • 转到你的* gud-hello *缓冲区。
  • 在(gdb)提示符下键入“run”。
  • 使用[ N ] Next或[ S ] Step。 或者[ C ]继续。 [ BT ] Backtrace也很有用。
  • 请注意hello.cc缓冲区最左侧列中的小三角形会发生什么。

(这应该足以让你开始.Emacs是emacs,总有更多的功能...)

如果你想要一些用户友好的调试器,你可以使用Kdbg,它基本上是KDE的gdb前端。 也许没有ddd那么强大,但更容易入手。

在我在瑞典做的C ++编程课程中,有一部分实验室关于GNU调试器。 之后我从未使用它,但是这里有一篇论文解释了基本用法,据我记得在第2章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM