Xcode breakpoint [NSExceptionRaise] vs -[NSExceptionRaise]

breakpoints, cocoa, cocoa-touch, xcode

Solution

The correct breakpoint is:

-[NSException raise]

You're instructing the debugger to break on the -raise method of the NSException class. "[NSExceptionRaise]" is (meaning no disrespect) nonsense. :-)

You don't need both, as far as I know. objc_exception_throw is the "new" way, whereas -[NSException raise] is the "old" way. I believe if you're on Leopard or later, only objc_exception_throw will be called. 10.4 or prior will call -[NSException raise].

Problem

Xcode:Run>Show>Breakpoints I've added the obligatory `[NSExceptionRaise]` and `objc_exception_throw` yet when I close the Breakpoints window and then return Xcode adds a third breakpoint: `-[NSExceptionRaise]`. Does this mean `[NSExceptionRaise]` is wrong and I should delete it? Or are they both helpful? If so in what way are they functionally different?

Original source