Praveen Kondapalli
Praveen Kondapalli

Reputation: 307

Exact line for exception in Xcode

I am new to Xcode and Objective-C. Unlike Android Java exceptions, I didn't find any exact line number where the exception occurred, though function name can be known from the crash log. Following is the crash log:

    2014-07-28 17:44:53.814 ExampleApp[82720:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
*** First throw call stack:
(
0   CoreFoundation                      0x034b25e4 __exceptionPreprocess + 180
1   libobjc.A.dylib                     0x028bc8b6 objc_exception_throw + 44
2   CoreFoundation                      0x03464bcc -[__NSArrayM insertObject:atIndex:] + 844
3   CoreFoundation                      0x03464870 -[__NSArrayM addObject:] + 64
4   ExampleApp                           0x0017f99e +[ReportGenerator prepareReportList:] + 5486
5   ExampleApp                           0x0017db99 +[ReportGenerator generateReportContent:viewController:] + 73
6   ExampleApp                           0x0017b682 +[ReportGenerator generateReport:viewController:style:] + 322
7   ExampleApp                           0x000a68fd -[ReportsViewController showReport] + 189
8   libobjc.A.dylib                     0x028ce81f -[NSObject performSelector:withObject:] + 70
9   Foundation                          0x01fa29d8 __NSThreadPerformPerform + 285
10  CoreFoundation                      0x0343b83f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
11  CoreFoundation                      0x0343b1cb __CFRunLoopDoSources0 + 235
12  CoreFoundation                      0x0345829e __CFRunLoopRun + 910
13  CoreFoundation                      0x03457ac3 CFRunLoopRunSpecific + 467
14  CoreFoundation                      0x034578db CFRunLoopRunInMode + 123
15  GraphicsServices                    0x046949e2 GSEventRunModal + 192
16  GraphicsServices                    0x04694809 GSEventRun + 104
17  UIKit                               0x010bbd3b UIApplicationMain + 1225
18  ExampleApp                          0x0011679d main + 125
19  libdyld.dylib                       0x0300a701 start + 1)libc++abi.dylib: terminating with uncaught exception of type NSException

Upvotes: 0

Views: 574

Answers (2)

bbum
bbum

Reputation: 162712

The crash is happening in your +[ReportGenerator prepareReportList:] method. Specifically, when attempting to add an object to an array.

Only, the object is nil. Which is why the log starts with object cannot be nil.

(Note: As you come from the world of Java exceptions, don't make the mistake of thinking that ObjC exceptions are designed to be caught and recovered from. They aren't.)

Upvotes: 0

Tha Leang
Tha Leang

Reputation: 3080

You can add a breakpoint to stop on all exceptions.

From Apple Docs

  1. In the bottom-left corner of the breakpoints navigator, click the Add button.

  2. Choose Add Exception Breakpoint.

  3. In the Exception pop-up menu, choose the type of exception on which you want execution to stop:

    • All. Stops on all exceptions.
    • Objective-C. Stops on Objective-C exceptions. C++. Stops on C++ exceptions.
    • To stop on a particular C++ exception, specify the exception name.
  4. Choose the phase of the exception handling process at which you want program execution to stop.

  5. Click Done.

Upvotes: 1

Related Questions