c++ - 在 xcode 的调试器中查看 IL2CPP 的 string_t 的内容

标签 c++ ios xcode debugging unity3d

Unity 的 IL2CPP/LLVM 后端从 C# 生成 cpp 文件。您当然可以读取这些文件,并将断点放入其中以查看变量。然而,C# 字符串被转译为一个名为 String_t 的自定义类。 Xcode 似乎不知道如何打印这些类的内部字符串,我不确定如何读取原始字节。

这是 String_t 的定义:

struct String_t  : public Object_t
{
    // System.Int32 System.String::length
    int32_t ___length;
    // System.Char System.String::start_char
    uint16_t ___start_char;
};

...谁能弄清楚如何从 Xcode 断点读取包含的字符串?

最佳答案

您可以使用 p il2cpp::utils::StringUtils::Utf16ToUtf8。因此,如果变量的名称是 L_3,那么您可以这样做:

p il2cpp::utils::StringUtils::Utf16ToUtf8(&L_3->___start_char_1)

关于c++ - 在 xcode 的调试器中查看 IL2CPP 的 string_t 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29171260/

相关文章:

ios - UITableViewCell Frame 在我第一次加载设置后没有改变

html - 我的 iPhone 6 获取 iPhone 5 媒体查询

objective-c - 如何通过 swift 使用 Chartboost 分析?

ios - 从商店下载了 Xcode 6.3,但 6.2 仍在启动

c++ - nghttp2-asio:在 header 中设置内容类型的正确方法

c++ - 迭代 vector ,边走边删除某些项目

iOS 键盘扩展 - 向标准键盘添加按钮(系统范围的输入附件 View )

ios - 从标记为 "public"的不同目标访问类

用于使用复数乘法并返回两个值的 C++ 类

c++ - 禁用 QSql(Relational)TableModel 的预取/缓存行为