Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 错误:无法';无法具体化结构:无法';t读取eax_Objective C_Debugging - Fatal编程技术网

Objective c 错误:无法';无法具体化结构:无法';t读取eax

Objective c 错误:无法';无法具体化结构:无法';t读取eax,objective-c,debugging,Objective C,Debugging,为了在iOS模拟器上进行调试,我曾经能够读取$eax寄存器并获得错误消息。但是,我不知道它是否是新的XCode版本4.6和iOS 6.1,我不能再这样做了 (lldb) po $eax error: Couldn't materialize struct: Couldn't read eax (materialize) Errored out in Execute, couldn't PrepareToExecuteJITExpression 现在怎么办? 另外,eax不在实际设备中,我该怎么

为了在iOS模拟器上进行调试,我曾经能够读取$eax寄存器并获得错误消息。但是,我不知道它是否是新的XCode版本4.6和iOS 6.1,我不能再这样做了

(lldb) po $eax
error: Couldn't materialize struct: Couldn't read eax (materialize)
Errored out in Execute, couldn't PrepareToExecuteJITExpression
现在怎么办? 另外,eax不在实际设备中,我该怎么办?

根据,您可以使用:

register read

要检查当前线程的通用寄存器,trojanfoe给出了一个很好的答案,可能对其他人也有帮助的是,如果由于没有显示消息的异常而试图打印$eax,请确保您位于调试导航器的objc_exception_throw框中(⌘+6) 打印出来的时候。否则,您将出现上面的“无法具体化”错误。

请确保您当前的构建方案处于调试模式,否则,编译后的应用程序将通过删除用于调试的其他信息进行优化


如果您正在设置自己的构建方案,请转到构建设置->代码生成->优化级别,将值设置为“无[-O0]”。

哇,谢谢,这个答案来得有点晚,但看起来正好解决了我的问题。我会检查的。我想我在objc_异常抛出中,它仍然说无法实现。它曾经在4.5版本的XCode上工作过。你可以使用po$r0在真实的设备上实现同样的功能=d这非常有用!