Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Thread 1: EXC_BAD_ACCESS (code=1, address=0xf00000c)

I have problem with Thread 1: EXC_BAD_ACCESS (code=1, address=0xf00000c) and I don't know how to resolve it. It appeared when I change some object in core date and save it and I try to pop this controller to parent. This error is in main() with retVal. here is some code

        int retVal;
    @try {
        retVal =  UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
           */\ error is here**
    }
    @catch (NSException *exception) {
        NSLog(@"%@", [exception callStackSymbols]);
        @throw exception;
    }
    return retVal;

After re-runing app all my changes are in core data. What is more this problem is only on iOS 7. iOS 6.1 is ok.

Does someone have idea how to resolve it?

like image 886
user2375706 Avatar asked Oct 04 '13 14:10

user2375706


People also ask

What does thread 1 Exc_bad_access mean?

EXC_BAD_ACCESS means that message was sent to a point in the memory where there's no instance of a class to execute it. Thus “bad access”. You will get EXC_BAD_ACCESS in 3 cases: An object is not initialized.

What is Exc_bad_access Xcode?

What does EXC_BAD_ACCESS mean? EXC_BAD_ACCESS is an exception raised as a result of accessing bad memory. We're constantly working with pointers to memory in Swift that link to a specific memory address. An application will crash whenever we try to access a pointer that is invalid or no longer exists.


4 Answers

As a comment said this error is likely to be deep in your code. If the culprit is a zombie, the easiest way to find it is to run it (preferably in the latest Xcode, currently Xcode 5, as it has been improved) in profiler and choose "Zombies". When it fails, you can see the history of everything that has happened to the object.

Also, set an exception breakpoint. You may get a break when the error happens instead of in main, where the exception gets passed up.

like image 65
Peter DeWeese Avatar answered Nov 04 '22 19:11

Peter DeWeese


I resolved this problem with "Zombies" and the problem was with [UIScrollView(UIScrollViewInternal) _notifyDidScroll]

I added

- (void)dealloc {

  self.tableView.delegate = nil;

} 

This problem was only in iOS 7.

Thanks for help!

like image 39
user2375706 Avatar answered Nov 04 '22 19:11

user2375706


I just had the exact same problem.

Looked here and found nothing so I started backtracking until I thought, maybe I should try Clean Build FolderđŸ€”

I was glad it was as easy as CLEAN BUILD FOLDER!!!

Product- Clean Build Folder(⇧ ⌘ K)

😀

like image 28
Superlative Avatar answered Nov 04 '22 19:11

Superlative


I have resolve this issue only by debugging the source code and re-analyze my logic.

Below are some reference that help me lot.

EXC_BAD_ACCESS means that message was sent to a point in the memory where there’s no instance of a class to execute it. Thus “bad access”.

You will get EXC_BAD_ACCESS in 3 cases:

  • An object is not initialized
  • An object is already released
  • Something else that is not very likely to happen

That’s already a good starting point. Start using the debugger, if you recently added a new object to the class you’re working on, put a breakpoint at the line before the freshly added object is used for the first time and check the values in the debugger.

What’s happening most though is that you will be sending a message to an overreleased object – i.e. object that is gone from the call stack. In this cases everything (and indeed everything) you will get in the console will be just :EXC_BAD_ACCESS

This is because the object is gone, there is no information what class was it, or what source file or anything else.

Please try to avoid using zombies for this.

like image 30
KTPatel Avatar answered Nov 04 '22 19:11

KTPatel