ios开发 - 了解xcode控制台输出

时间:2013-04-18 14:30:47

标签: ios console

例如,当我记录字典时,我得到这样的输出:

2013-04-18 16:24:45.905 pathFinderTest[9650:c07] -[__NSCFDictionary length]: unrecognized selector sent to instance 0x9271ee0
2013-04-18 16:24:45.912 pathFinderTest[9650:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary length]: unrecognized selector sent to instance 0x9271ee0'
*** First throw call stack:
(0x1c91012 0x10cee7e 0x1d1c4bd 0x1c80bbc 0x1c8094e 0x1c07c36 0x1c5113c 0x1cb64b6 0xb3c60a 0xb3c57c 0x2af7 0x28f8 0xf41c7 0xf4232 0x433d5 0x4376f 0x43905 0x4c917 0x25a5 0x10157 0x10747 0x1194b 0x22cb5 0x23beb 0x15698 0x1becdf9 0x1becad0 0x1c06bf5 0x1c06962 0x1c37bb6 0x1c36f44 0x1c36e1b 0x1117a 0x12ffc 0x22dd 0x2205)
libc++abi.dylib: terminate called throwing an exception
(lldb) 

现在我知道错误在哪里以及在什么文件中。但如果我没有呢? 我习惯于java指向正确的文件和相应的行号。并不是说问题始终存在,但往往是一个好的方向。

1 个答案:

答案 0 :(得分:3)

如果使用调试器运行应用程序,当遇到异常时,Xcode调试器将显示堆栈跟踪。这将指向应用程序中导致问题的确切文件和行。

如果没有发生这种情况,请在Xcode中执行以下操作:

  • 查看Xcode左侧的断点窗格
  • 点击左下角的+按钮,然后选择“添加例外断点”
  • 出现一个新的断点和一个对话框。接受默认值并单击“完成”
  • 右键单击例外并选择“将断点移至”并选择“用户”

现在调试您的应用并导致异常。现在,只要遇到异常,您就应该在调试器中获得有用的堆栈跟踪。