问题标签 [gdb-python]

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 投票
1 回答
840 浏览

debugging - Can GDB set a breakpoint on a sequence of function calls?

I'd like to inspect some global variables before a crash happens. The issue only reproduces on a certain stack trace and setting a breakpoint on the innermost function (or any other from the stack) will not get me close enough.

Can I achieve the result of breaking only when the top of the stack contains something like this ?

Just doing

doesn't work since init_assets is called multiple times and it doesn't call curl every time, so gdb will break in unrelated code that uses curl.

Later edit: another way is:

Then you remove the breakpoint, add it back and only ignore 9 times. When you run the app again, gdb will stop on the 10th time -- when inner_func crashes.

You can also record the app in mozilla's rr if the execution varies too much.

0 投票
1 回答
643 浏览

gdb-python - gdb python disas - 解析输出

设置:GDB 使用脚本运行内部 python 解释器。脚本的内容disas在一些内存上运行。

我需要这个命令在 python 字符串中的输出。我怎样才能做到这一点?

想过记录,结果发现只记录了命令的第一行:

disas 的预期结果在屏幕上,但不在日志文件中。

是否可以将标准输出重定向到流中或以其他方式获取信息?

编辑:我已将 GDB 连接到 openOCD 服务器。我的目标是汇编程序命令。没有elf文件等等,我从中获取源代码。它只是驻留在控制器程序内存中的纯机器指令,我需要将其打印出来。

0 投票
1 回答
327 浏览

python-2.7 - 进入pdb时有什么方法可以停止后台进程吗?

所以,我有一些这样的代码:

问题是,如果我在 doSomething() 函数中执行 pdb.set_trace(),ProgressProc 进程会继续进行。在 pdb 提示符处于活动状态时,它会不断将内容打印到控制台。我想要的是让 ProgressProc 有一些方法来检查主线程(实际上,任何其他线程)是否在 pdb 中暂停,然后我可以跳过 markProgress()。

有 sys.gettrace(),但这仅适用于执行 pdb.set_trace() 的线程,我不知道如何在与我所在的线程不同的线程上调用它。我还能做什么? 我能捕捉到任何信号吗?我可以让我的主要方法替换 pdb.set_trace 以首先调用一些 multiprocessing.Event 。有没有更清洁的方法?

ETA:这也适用于 python gdb 命令。

0 投票
0 回答
75 浏览

python - GDB Python:解析结构数组的字段名称

谁能解释我如何解析结构数组以获取结构字段。

使用这个 gdb python 中提到的脚本 :谁能解释我如何使用这篇文章中写的这个脚本?

尝试解析以下结构:

0 投票
1 回答
155 浏览

c++ - 用于 C++ 的更好的文本 UI 调试器,例如用于 python 的 pudb

我正在尝试在 Linux 上远程调试一个大型 C++ 项目,这在本地通过 Visual Studio 重新构建有点困难。因此我尝试通过控制台调试它。而gdbor gdb --tuiorgdb-dashboard工具不方便交互。我认为pudb在交互方面是python的一个工具。因此,有没有更好的 C++ 控制台文本 UI 调试器?感谢您告诉我工具或任何建议,我将非常感激!

0 投票
1 回答
195 浏览

stl - 通过 gdb 将 c++ 变量传递给 python

我正在开发/调试一个广泛使用 c++ STL 向量和 blitz cpp 数组的 c++ 代码(向量/数组是多维的,最多 4D/5D 数组)我目前正在使用 cout/print 来记录函数的输入/输出的输出,但它变得非常乏味。为了能够在调试时打印向量/数组,您能否提出任何选项。我想到了几个选择

(a) 在 c++ 上编写模板函数来打印和使用 GDB 的“调用”功能。但无法将 GDB 的“调用”功能用于 c++ 模板函数,但适用于普通函数。(b) 是否可以将 c++ 变量传递给 GDB 的 python 接口并打印它们?有什么相同的例子吗?

我在发布这个问题之前用谷歌搜索,但没有找到任何有用的线程。非常感谢任何帮助(即使可以提供一些链接)

非常感谢提前!

0 投票
1 回答
392 浏览

python - 如何启动从 Python 调用的 C++ 的 GDB?

我需要调试从 Python 代码调用的 C++ 函数。

如何以调试从给定 Python 命令行调用的 C++ 代码的方式启动 GDB(或更好的 DDD)?

给定的 Python 命令行是:

它调用了我需要调试的 C++ 代码。

0 投票
0 回答
49 浏览

python - 是否有用于“信息符号”的 gdb python API?

我正在尝试使用info symbol $frameptr但在 gdb 脚本中。gdb python API中是否有等价物?

0 投票
1 回答
188 浏览

gdb - Intel Pin GDB 运行时开销

我正在使用 Pintool 运行的程序上运行 Python gdb 脚本。具体来说,我使用了-appdebug_enable开关并在 Pintool 中创建了一个语义断点,该断点自动触发断点并运行我提供的 Python 脚本。该脚本主要检查局部和全局变量并扫描程序动态分配的内存。我注意到 gdb 脚本的运行速度比我在没有 Pintool 的情况下运行程序和 gdb 慢几个数量级。我还尝试使用虚拟 Pintool 来查看我的 Pintool 实现是否导致速度变慢,但似乎并非如此。

我的结论是 Pin 减慢了我的 gdb 脚本,但谁能解释一下如何以及为什么?有什么工具可以用来分析 Pin 的性能下降吗?

(我知道gdb性能通常不是人们太在意的东西,但我很好奇减速的根源。)

0 投票
1 回答
3645 浏览

python - 引发 GDB 错误:“未指定可执行文件”

我试图用来gdb调试一个包含用 C++ 编写的模块的程序。我下载了gdb使用自制软件的最新版本。

我尝试运行以下命令:

但是,我收到以下错误:

然后我尝试使用如下的“文件”和“执行文件”命令(还包括输出):

我该如何使用gdb来运行Pyrh_test.py