gpt4 book ai didi

c - GDB : how can I get the name of all local variables?

转载 作者:行者123 更新时间:2023-12-04 09:14:15 24 4
gpt4 key购买 nike

gdb 中有没有办法获取所有局部变量的名称?这个我知道

本地信息

打印局部变量的名称和值,但我想在函数执行的几个点自动比较所有局部变量的值(并且此函数中有大量局部变量,因此手动进行一个一个会很乏味......)

谢谢!

最佳答案

听起来您真的想要一种方法来比较两个时间点的某些本地人。有几种方法可以做到这一点。

一种低技术含量的方法是使用info locals 转储变量。您可以使用 set logging 工具将它们转储到一个文件中,并且您可以通过设置一个断点来完全自动执行此操作,该断点的 commands 执行日志记录、转储、禁用日志记录、最后以 continue 结束。

在这种方法中,您将编写一个单独的脚本来比较结果。

另一种方法是使用 gdb 的 Python 脚本工具。这里很容易获取局部变量:使用gdb.selected_frame()获取选中的帧;然后获取框架的 block (frame.block());然后遍历 block 的局部变量以获取该 block 的变量,并沿着 block 向上移动(参见 gdb.Block.superblock),直到到达函数边界。

您可以评估或忽略您找到的符号(例如,如果您只想比较某个子集)。而且,您可以决定如何比较您收集的值。

在这种方法中,所有工作都在 gdb 中完成,没有任何单独的比较脚本。

关于c - GDB : how can I get the name of all local variables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36451265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com