使用调用unity3d的il2cpp的时候,往往需要看看一下字符,但是这个c#的字符串是一个对象来的,并且是一个16bit的方式一个字符的unicode编码。
x/hs addr
效果如下:
(gdb) x/hs 0x779f8e8c
0x779f8e8c: u"I am the unicode strings"
//断点Resources.Load之后,打印一下传入的文件的名字.
Breakpoint 2, Resources_Load_TisRuntimeObject_m2B4657C4B7BB759A295E6F956D014FC1122DD3D8_gshared (___path0=0x7ab587a8, method=0x7bf85500)
//偏移是第一个参数+0xc
(gdb) x/hs $r0+0xc
0x7ab587b4: u"I am the file name"
本文探讨了在Unity3D使用IL2CPP时如何处理C#字符串,详细解释了C#字符串作为16位Unicode编码的对象,并通过GDB调试工具展示如何查看和理解这些字符串在内存中的表现。
5万+

被折叠的 条评论
为什么被折叠?



