问题标签 [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.
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 命令。
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++ 代码。)
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 并查看下面的注释。
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 的字体。我怎样才能避免这些警告?将字体更改为默认值?
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 标志
提前致谢
c++ - gdb中的方法定义没有源
我有一个没有源的调试版本。
ptype
给我类定义,其中声明了方法的原型。
如何获取方法accept()
和getitem()
gdb 中的定义?
请注意,我没有调试版本的源代码。
gdb - 警告后Gdb不会打开
GDB 不会打开。我收到警告:无法将字符串“- -symbol- - - - - -120- - - - -adobe-*” 转换为类型 FontStruct
我尝试了一些我在网上找到的建议,但似乎都没有奏效。任何帮助表示赞赏。
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/gdb
DDD,这给了我以下错误:unix:os161/root/.sockets/gdb: No such file or directory
什么可能导致此错误?我可以使用 .gdbinit 中的目标远程命令成功设置 gdb 而无需 DDD,因此我知道 .sockets 目录中的 gdb 文件存在并且有效。我怀疑的一件事是为什么启动 ddd 的初始命令会打开一个特定的源文件(每次都一样),这可以链接吗?
如果任何有 OS161 经验的人都知道如何使用 GUI 前端设置 gdb(不必严格使用 DDD)以简化调试(我不想使用 vim :/),那就太好了。
顺便说一句,如果有帮助,我正在使用 Debian Jessie。
c - 使用 DDD(数据显示调试器)时的 SIGSEV
这是我第一次使用 DDD,而且我对所讨论的主题(在 unix 环境中的 c)非常缺乏经验,所以我可能会忽略一些东西。当我尝试从文件中 fscanf 时收到分段错误,这在正常的 gcc 编译中不会发生。功能如下:
并在阅读 fscanf 行后,它在 DDD 中给出以下消息:
程序收到信号 SIGSEGV,分段错误。来自/lib/i386-linux-gnu/lib.so.6的__isoc99_fscanf()中的0xb7e58e1e
我无法弄清楚可能导致此问题的原因。提前致谢!