问题标签 [ddd-debugger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3602 浏览

python - 一起调试boost暴露的Python和C++

我可以使用ddd -pydb prog.py. 所有 python 命令行参数也可以在prog.py. 就我而言,许​​多类已经在 C++ 中实现,这些类使用boost-python. 我希望我可以一起调试 python 代码和 C++。例如,我想设置这样的断点:

当然,我在使用调试选项编译 c++ 代码后尝试它,但调试器不会越过提升边界。有什么办法吗?

编辑:我看到了http://www.boost.org/doc/libs/1_61_0/libs/python/doc/html/faq/how_do_i_debug_my_python_extensi.html。我跟着它,我可以为 python 和 C++ 进行调试。但我更喜欢用它做可视化调试,DDD但我不知道如何在里面给出'target exec python'命令DDD。如果不是(仅gdb在链接中使用),我应该能够调试 Python 脚本,而不是像链接中那样以交互方式提供 python 命令。

0 投票
0 回答
539 浏览

python - 如何在使用 DDD(或 gdb)调试 python 时进入 C++ 代码

对于测试示例,我有这个测试 C++ 类,我使用 boost 导出到 Python。(来自 boost 网站)

我编译了这段代码g++ -g -shared -o hello.so -fPIC hello.cpp -lboost_python -lpython2.7 -I/usr/local/include/python2.7并测试了它。测试脚本pp1.py是这样的:

此代码在交互模式下和作为脚本都可以正常运行。

我正在使用 DDD 进行可视化调试。当我发出命令ddd -pydb pp1.py时,我可以进行 Python 代码调试。当我在调试器中时,我可以发出next命令并查看结果。但是当调试器例如在第 3 行时,当我发出step命令时,它只是传递了没有进入 c++ 代码的行。我怎样才能使这项工作?(我只尝试了 gdb,但它是一样的 - 没有进入 c++ 代码。)

0 投票
1 回答
1975 浏览

debugging - 如何在 DDD 调试器中一次禁用所有断点(pydb 模式)

使用 gdb,我们可以禁用断点,如ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_32.html中所述。在文档上,要禁用所有断点,它说只在disalbe没有断点列表的情况下给出。但在我的 ddd(data-display-debuger) 中,它不起作用。我该怎么做?或者我如何指定范围?(我尝试了 1-10 但没有用)。

编辑:我使用 DDD 使用命令进行 python 调试,ddd -pydb prog.py arg1 arg2..所以它实际上是 pydb 命令,而不是 gdb 命令。答案见评论,后来发现对于pydb来说,delete不带任何参数的命令会删除所有的断点。要禁用所有断点,您必须修改 gdb.py 并查看下面的注释。

0 投票
1 回答
1876 浏览

c++ - DDD:无法将字符串“-*-helvetica-medium-r-*-230-*-iso8859-*”转换为字体结构

我正在使用 DDD 3.3.12 调试 C/C++。以下是操作系统信息:

RHEL6.0-2012-x86_64
Red Hat Enterprise Linux Workstation 6.3 版

当我启动 DDD 时,它显示:

警告:无法将字符串“- -helvetica-medium-r- - - -230- - - - -iso8859- ”转换为输入 FontStruct (生气?尝试“编辑->首选项->常规->抑制 X 警告”!)警告:无法将字符串“- -helvetica-medium-r- - - -200- - - - -iso8859- ”转换为类型 FontStruct 警告:无法转换字符串“- -helvetica-bold-r- - - -230- - - - -iso8859- " 键入 FontStruct 警告:无法转换字符串"- -helvetica-medium- - - - -230- -- - -iso8859- ” 输入 FontStruct 警告:无法转换字符串“- -helvetica-bold- - - - -230- - - - -iso8859- ” 输入 FontStruct 警告:无法转换字符串“- -helvetica-bold-r - - - -340- - - - -iso8859- " 输入 FontStruct 警告:无法将字符串 "- -symbol- - - - - -230- - - - -adobe-*" 转换为输入 FontStruct

我试过之后

'编辑->首选项->常规->抑制 X 警告'!

那些警告消失了。

我之前更改了 DDD 的字体。我怎样才能避免这些警告?将字体更改为默认值?

0 投票
1 回答
209 浏览

gdb - DDD(debugger)图形显示格式

例如graph display B[576] @576,当我给出数组值时,我可以看到数组 B[576] 中的 576 个值。但我无法理解下面看到的显示结果。第一个元素0 <225x>是什么意思?这是否意味着 225 个零值?

在此处输入图像描述

0 投票
1 回答
690 浏览

gdb - gdb 无法启动 - DDD 到远程劣质调试器

我试图将 DDD 附加到远程机器上的 gdb。我已将 rsh 配置为不需要我的机器和用户名的通行证。

ddd 打开时显示“rtx5:1234: not found”,并弹出“GDB 无法启动”。从调用 ddd --host rtx5:2159 --trace --no-exec-window /home/murray/beer-process

ddd 从跟踪日志中启动的 GDB 的 PID 为 4 位。但是,我可以从 rtx(target) 看到的所有 PID 都是 8 位的。我无法将 gdb 视为一个进程,但跟踪日志表明并非如此。文档是否已过时并且我错误地调用它?我如何测试 ddd 是否正确 rsh-ing?

我已经解决了文档 2.4.1的注意事项:

  • Beer-process 二进制文件位于目标上我的用户名的主目录中。
  • 检查 /usr/bin/gdb 中 gdb 的路径
  • rtx5 没有 xterm 因此包括 --no-exec-window 标志

提前致谢

0 投票
1 回答
81 浏览

c++ - gdb中的方法定义没有源

我有一个没有源的调试版本ptype给我类定义,其中声明了方法的原型。

如何获取方法accept()getitem()gdb 中的定义?

请注意,我没有调试版本的源代码。

0 投票
1 回答
38 浏览

gdb - 警告后Gdb不会打开

GDB 不会打开。我收到警告:无法将字符串“- -symbol- - - - - -120- - - - -adobe-*” 转换为类型 FontStruct

我尝试了一些我在网上找到的建议,但似乎都没有奏效。任何帮助表示赞赏。

0 投票
0 回答
306 浏览

gdb - 使用 DDD 为 OS-161 设置 GDB

我正在设置 gdb 来调试 OS-161,并且我计划使用 DDD 作为可视化前端。我正在遵循官方 CS-161 课程页面的说明:http ://www.eecs.harvard.edu/~cs161/resources/eclipse.html (向下滚动到 DDD)。

在切换到我构建内核的内核/编译/DUMBVM 后,我启动 DDD ddd -debugger mips-harvard-os161-gdb --gdb kernel(因为 OS161 内核作为内核安装)。当我这样做时,DDD 会打开我的操作系统树的一个源文件。

然后在使用调试模式启动 sys161 后sys161 -w kernel,我输入target remote unix:os161/root/.sockets/gdbDDD,这给了我以下错误:unix:os161/root/.sockets/gdb: No such file or directory

什么可能导致此错误?我可以使用 .gdbinit 中的目标远程命令成功设置 gdb 而无需 DDD,因此我知道 .sockets 目录中的 gdb 文件存在并且有效。我怀疑的一件事是为什么启动 ddd 的初始命令会打开一个特定的源文件(每次都一样),这可以链接吗?

如果任何有 OS161 经验的人都知道如何使用 GUI 前端设置 gdb(不必严格使用 DDD)以简化调试(我不想使用 vim :/),那就太好了。

顺便说一句,如果有帮助,我正在使用 Debian Jessie。

0 投票
1 回答
150 浏览

c - 使用 DDD(数据显示调试器)时的 SIGSEV

这是我第一次使用 DDD,而且我对所讨论的主题(在 unix 环境中的 c)非常缺乏经验,所以我可能会忽略一些东西。当我尝试从文件中 fscanf 时收到分段错误,这在正常的 gcc 编译中不会发生。功能如下:

并在阅读 fscanf 行后,它在 DDD 中给出以下消息:

程序收到信号 SIGSEGV,分段错误。来自/lib/i386-linux-gnu/lib.so.6的__isoc99_fscanf()中的0xb7e58e1e

我无法弄清楚可能导致此问题的原因。提前致谢!