问题标签 [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.
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.
gdb-python - gdb python disas - 解析输出
设置:GDB 使用脚本运行内部 python 解释器。脚本的内容disas
在一些内存上运行。
我需要这个命令在 python 字符串中的输出。我怎样才能做到这一点?
想过记录,结果发现只记录了命令的第一行:
disas 的预期结果在屏幕上,但不在日志文件中。
是否可以将标准输出重定向到流中或以其他方式获取信息?
编辑:我已将 GDB 连接到 openOCD 服务器。我的目标是汇编程序命令。没有elf文件等等,我从中获取源代码。它只是驻留在控制器程序内存中的纯机器指令,我需要将其打印出来。
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 命令。
c++ - 用于 C++ 的更好的文本 UI 调试器,例如用于 python 的 pudb
我正在尝试在 Linux 上远程调试一个大型 C++ 项目,这在本地通过 Visual Studio 重新构建有点困难。因此我尝试通过控制台调试它。而gdb
or gdb --tui
orgdb-dashboard
工具不方便交互。我认为pudb
在交互方面是python的一个工具。因此,有没有更好的 C++ 控制台文本 UI 调试器?感谢您告诉我工具或任何建议,我将非常感激!
stl - 通过 gdb 将 c++ 变量传递给 python
我正在开发/调试一个广泛使用 c++ STL 向量和 blitz cpp 数组的 c++ 代码(向量/数组是多维的,最多 4D/5D 数组)我目前正在使用 cout/print 来记录函数的输入/输出的输出,但它变得非常乏味。为了能够在调试时打印向量/数组,您能否提出任何选项。我想到了几个选择
(a) 在 c++ 上编写模板函数来打印和使用 GDB 的“调用”功能。但无法将 GDB 的“调用”功能用于 c++ 模板函数,但适用于普通函数。(b) 是否可以将 c++ 变量传递给 GDB 的 python 接口并打印它们?有什么相同的例子吗?
我在发布这个问题之前用谷歌搜索,但没有找到任何有用的线程。非常感谢任何帮助(即使可以提供一些链接)
非常感谢提前!
python - 如何启动从 Python 调用的 C++ 的 GDB?
我需要调试从 Python 代码调用的 C++ 函数。
如何以调试从给定 Python 命令行调用的 C++ 代码的方式启动 GDB(或更好的 DDD)?
给定的 Python 命令行是:
它调用了我需要调试的 C++ 代码。
python - 是否有用于“信息符号”的 gdb python API?
我正在尝试使用info symbol $frameptr
但在 gdb 脚本中。gdb python API中是否有等价物?
gdb - Intel Pin GDB 运行时开销
我正在使用 Pintool 运行的程序上运行 Python gdb 脚本。具体来说,我使用了-appdebug_enable
开关并在 Pintool 中创建了一个语义断点,该断点自动触发断点并运行我提供的 Python 脚本。该脚本主要检查局部和全局变量并扫描程序动态分配的内存。我注意到 gdb 脚本的运行速度比我在没有 Pintool 的情况下运行程序和 gdb 慢几个数量级。我还尝试使用虚拟 Pintool 来查看我的 Pintool 实现是否导致速度变慢,但似乎并非如此。
我的结论是 Pin 减慢了我的 gdb 脚本,但谁能解释一下如何以及为什么?有什么工具可以用来分析 Pin 的性能下降吗?
(我知道gdb性能通常不是人们太在意的东西,但我很好奇减速的根源。)
python - 引发 GDB 错误:“未指定可执行文件”
我试图用来gdb
调试一个包含用 C++ 编写的模块的程序。我下载了gdb
使用自制软件的最新版本。
我尝试运行以下命令:
但是,我收到以下错误:
然后我尝试使用如下的“文件”和“执行文件”命令(还包括输出):
我该如何使用gdb
来运行Pyrh_test.py
?