gpt4 book ai didi

lldb - 使用 lldb 检查堆栈上的参数

转载 作者:行者123 更新时间:2023-12-01 13:48:29 26 4
gpt4 key购买 nike

我正在使用 lldb 来跟踪调用 CoreFoundation 函数(例如 CFRunLoopTimerCreate)的一些纯 C 或 C++ 代码(32 位)。

我在 CFRunLoopTimerCreate 上设置了一个断点,并想检查传递的参数。

我该怎么做? frame variable 在这里不起作用(它不打印任何内容),因为它不在 ObjC 上下文中。

我想我必须以某种方式使用 x 命令来查看 sp 之上的内存,但无论我尝试什么语法,我都会不断收到错误消息。

那么,基本上,检查寄存器指向的地址处的内存的语法是什么?另外,有没有更好的方法来查看堆栈上的参数?

最佳答案

x 实际上是 memory read 命令的简写。您可以选择字的大小,例如这个:

memory read --format x --size 4 --count 8 `$esp - 32`

将显示堆栈的前 32 个字节(在 i386 上),格式为 4 字节十六进制数。如果您正在寻找指针值等,这可能会使它更容易。 --format 的参数也可以是 d 用于十进制输出。 --outfile 允许您指定写入内存内容的文件路径,这对于大量数据可能更有用。用反引号包围要评估的表达式 `.

关于lldb - 使用 lldb 检查堆栈上的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33860072/

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