Kev*_*Lee 1 debugging macos lldb
我正在追踪一个OS X应用程序,我希望可以在iOS上找到这样的方式:
有办法这样做吗?我试过了
expr -- (void)printf("[%s, %s]\n",(char *) object_getClassName(*(long*)($esp+4)), (char *) *(long *)($esp+8) )
Run Code Online (Sandbox Code Playgroud)
我认为OS X使用的是64位寄存器.所以这个命令不起作用(实际上,它不起作用).我该怎么写这个命令?或者有一个简单的方法来做同样的事情?只是跟踪调用的类和方法
您在上面引用的命令仅适用于在Mac上作为i386进程运行的iOS模拟器应用程序. $esp+4表示第一个参数,$esp+8表示在i386 ABI中传递的第二个参数.在x86_64和手臂,前几个参数都与寄存器传递$arg1,$arg2方便的名字.所以试试吧
p (void)printf("[%s, %s]\n", (char*)object_getClassName($arg1), $arg2)
Run Code Online (Sandbox Code Playgroud)
用于arm/x86_64体系结构.(当然,这里p是别名expr --- 同样的事情,只是少打字.)
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |