【问题标题】:How can I reproduce this DDD test?如何重现此 DDD 测试?
【发布时间】:2017-05-07 05:21:02
【问题描述】:

我正在学习如何将数据显示调试器 (DDD) 用于我的 C/C++ 程序。 Help reference for DDD 显示了一些示例输出,包括以下图形/图表示例。我正在尝试重现该练习,但我遇到了困难。它应该工作的方式是我将使用调试器选项编译 cxxtest.c,并且 DDD 工具实际上会在分步调试会话期间以 2D 和 3D 绘制感兴趣的变量数组。哇,如果它有效。

cxxtest.c 程序包含在DDD repository, ddd-3.3.12.tar.gz 中。我正在尝试编译并运行该程序,但我一直卡住。我不知道如何生成 config.h 文件,所以我可以链接必要的支持文件(例如 bool.h)来编译 cxxtest.c

我在 DDD 存储库中看到的与配置相关的文件包括:

  • 配置信息
  • config.h.in
  • config.texi
  • configinfo.C
  • configinfo.h
  • 配置
  • config.in

它们似乎都没有对如何生成 config.h 文件提供太多帮助。

有人知道如何生成 config.h 文件吗?

更新:当我继续工作时,整个事情看起来很奇怪。该程序 cxxtest.C 有一个 .C 后缀,但其中有明显的 C++ 元素 #include <iostream> 如果我阻止 config.h 的东西,将后缀更改为 .cpp 并编译我会得到一大堆不同的错误。不知道这里的意图是什么。

至于 README 内容,我确实看到了一些关于如何编译整个 DDD 工具的说明,而且相当冗长。目前尚不清楚准备/配置和编译 DDD 工具是否也会编译这个特定的测试文件。我想我可以浏览一下make文件和脚本,看看是否每个人都提到了这个文件。 (叹气!)

实际上,我正在考虑通过重写将整个文件转换为纯 .c。注意,原文件是visible here...

注意:我现在在 Virtualbox Ubuntu 桌面上工作......最终我想使用 DDD 工具来分析我正在研究的一些数字信号处理 (DSP) 程序中的关键阵列。

更新 #2: 我在这里尝试了两种不同的方法。首先,我使用从原始 cxxtest.c 程序复制的绘图例程构建了一个 C 版本的文件。我将所有调用转换为纯 C。我可以轻松地在 DDD 数据窗口中以文本格式查看数据。当我选择数据集,然后选择绘图时,我会弹出一个“DDD:正在启动绘图...正在启动 gnuplot...”系统只是挂在那里。

其次,我对 ddd 工具进行了完整的全新安装。我必须安装一些依赖项,并纠正一些已知的错误(例如 #include <cstdio> ),但在 $ ./configure && make$ make check 上都成功了。 make check 命令确实正确构建和编译 cxxtest.c 。当我运行该文件并执行绘制drir 数组变量的步骤时,我遇到了与上述相同的失败。

系统挂起。对故障的搜索表明这已经报告了多年,显然没有解决。不太确定如何进行。这似乎是一个彻底的失败。我无法重现 DDD 测试来绘制图形输出。还有其他人在这方面取得进展吗?

注意:通过此编辑,我还将从标题中删除 How do I generate config.h?。这不是这里真正的关键问题。

【问题讨论】:

  • 有自述文件吗?
  • INSTALL 文件显示“对于安装前的简单检查,请键入 $ make check 这将创建一个示例 C++ 程序 `cxxtest',然后通过调用 `./ddd cxxtest' 在其上运行 DDD”
  • 查看附加说明:当我在独立目录中只有 cxxtest.c 和一些支持文件时,make check 返回make: *** No rule to make target 'check'. Stop. 我对运行ddd 非常熟悉,只是没有带有图形输出。
  • .C 后缀是 C++ 文件的旧约定。编译cxxtest不必编译ddd,但如果你能成功运行./configure,它会创建config.h然后你只需要运行g++ -DHAVE_CONFIG_H -I. -I./.. -g -Wall -W -Wwrite-strings -trigraphs ./cxxtest.C -o cxxtest -lm
  • 由于您使用的是 Ubuntu,sudo apt-get build-dep ddd 将检索并安装您需要的库和工具依赖项。

标签: c gdb config gnu-make gnu


【解决方案1】:

有人知道如何生成 config.h 文件吗?

是的:只需运行提供的configure 脚本。构建开源软件的典型顺序是:

./configure && make

【讨论】:

  • 我建议您在阅读新闻时应该学会阅读头条之外的内容。注意上面的编辑。
  • @zipzit 让我直截了当:你抱怨我已经回答了你的问题是昨天,而不是在一小时前更新后回答?你有时间旅行机器可以卖给我吗?
  • 是您的回答让我确信我需要更新问题。没有足够的空间将所有问题准确地放在标题中。你到底认为我要去哪里graph/charting examplereproduce the exercise?当您生成config.h 文件时,您是否能够在 ddd 工具中成功获取数据图?请注意,我没有否决你的答案...我赞成它一个(-1 --> 0)
猜你喜欢
  • 2017-11-30
  • 1970-01-01
  • 2021-12-16
  • 2013-04-21
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多