On Dec 21, 2010, at 11:25 PM, Richard Somers wrote:

> The following exception message that is being sent by the frameworks: 
> -[NSCFArray objectAtIndex:]: index (x) beyond bounds (y)
> 
> The method 'objectAtIndex:' is called in many location within the code base 
> but the console message gives no indication where the error occurred.
> 
> The error is actually occurring on users test machine that does not have 
> Xcode installed.
> 
> Is it possible somehow to get the console message to indicated where in the 
> code the error is occurring?

If you can deliver the user a different build of your app, you can use 
NSExceptionHandler to log more detailed information about the exception.  See 
that class's documentation, including the conceptual guide, for more 
information.

Another approach is to use DTrace.  All thrown/raised exceptions from 
Objective-C go through the objc_exception_throw function.  So, a DTrace 
one-liner like the following would print a stack trace for them:

sudo dtrace -n 'pid$target::objc_exception_throw:entry {ustack();}' -p <pid of 
app process>

(Note that this may trace exceptions in addition to the one you're seeing 
logged, if something is using exceptions internally.)

Regards,
Ken

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to