使用 lldb 在主二进制文件中查找名为“_OBJC_IVAR_$_DIRect._width”的非外部符号?

Use lldb to find a non-external symbol named like '_OBJC_IVAR_$_DIRect._width' in main binary?

我知道如何使用 image lookup -n 和符号名称。但似乎 '_OBJC_IVAR_$_DIRect._width' 的名称中包含 .,lldb 无法将其作为正常情况处理。

_OBJC_IVAR_$_DIRect._width是编译器生成的符号。

(__DATA,__objc_ivar) non-external (was a private external) _OBJC_IVAR_$_DIRect._width

-n 应该寻找 "function-or-symbol" - 即具有调试信息的东西以及来自符号 table 的符号。它应该等同于为 -F-s 提供相同的参数。但它实际上只查找函数和 CODE 符号——它不查找数据符号。不确定这是否是设计使然,帮助字符串是错误的还是错误。

幸运的是,直接符号查找(使用 -s 选项而不是 -n)会搜索所有符号,包括数据符号。尝试使用 -s 选项。