Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[iOS] Onverklaarbare EXC_BAD_ACCESS

Pagina: 1
Acties:

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 31-10 03:36

F.West98

Alweer 16 jaar hier

Topicstarter
:w

Ik ben bezig met een iOS app, maar ik loop al snel tegen een probleem aan, een EXC_BAD_ACCESS. Deze treedt op bij het bezoeken van een webpagina met de volgende code:
Objective-C:
1
2
3
4
5
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://google.nl"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0];

[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
/* Processing */
}];

De volgende error treedt op (als ik debug in XCode breakt hij hier:)
com.apple.NSURLConnectionLoader (7): EXC_BAD_ACCESS (code=2, address=0x0)
Dit is midden in een stuk Assembly (elke keer weer anders!) van Apple.

Als je Googlet kom je geen oplossingen tegen en suggereren een paar mensen dat het een fout van Apple is.
Hier ideeën?

[ Voor 10% gewijzigd door F.West98 op 05-10-2014 20:30 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • Scott
  • Registratie: December 2004
  • Laatst online: 14-11 09:04

Scott

Ik ben, dus ik tweak

Zet even de exception breakpoint aan (Debug > Breakpoint > Create Exception Breakpoint). Dan stopt de debugger met een wat vriendelijkere error.

Oh, en:

- iOS-versie?
- Simulator of device?
- Xcode-versie?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ook niet onbelangrijk: een project met of zonder ARC?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 31-10 03:36

F.West98

Alweer 16 jaar hier

Topicstarter
De debugger stopt nog steeds op dezelfde manier (desbetreffende regel wordt groen gemarkeerd, en in de kantlijn staat die foutmelding, nergens een stacktrace te vinden (of mis ik iets?)).
Als ik naar de variable debugger kijk (daar kan je een soort van stacktrace zien) gebeurt het tijdens de SSLHandshake (SSLProcessServerKeyExchange).

Verder:
- iOS: 8
- Simulator& device
- XCode 6.0
- Afaik mét ARC, AppCode gaf een warning ergens over ARC.

[ Voor 32% gewijzigd door F.West98 op 05-10-2014 20:38 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • Scott
  • Registratie: December 2004
  • Laatst online: 14-11 09:04

Scott

Ik ben, dus ik tweak

De daadwerkelijke call stack kun je zien in de Debug navigator (cmd + 6), maar ik denk dat je daar niet ver mee gaat komen aangezien de fout binnen NSURLConnection zit en je daar geen implementatie voor hebt. Ik zou er voor de zekerheid toch even naar kijken, maar verwacht er niet te veel van.

Als je je project online kunt zetten, kan ik er wel even naar kijken.

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 31-10 03:36

F.West98

Alweer 16 jaar hier

Topicstarter
Die heb ik al, maar daar zie ik dus niets :P

Maar hij staat hier: https://github.com/FWest98/Discipul-iOS
Het zou heel erg fijn zijn als je kan kijken :)

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • Vinnienerd
  • Registratie: Juli 2000
  • Laatst online: 16-11 14:36
Vervang je NSOperationQueue eens door [NSOperationQueue mainQueue]. Ik denk dat NSURLConnection deze niet retained en daardoor hem weer kwijtraakt,

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 31-10 03:36

F.West98

Alweer 16 jaar hier

Topicstarter
Dat hielp helaas niet.

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • Scott
  • Registratie: December 2004
  • Laatst online: 14-11 09:04

Scott

Ik ben, dus ik tweak

Het gebruik van NSURLSession in plaats van NSURLConnection lost het probleem op. NSURLSession is wat moderner en hoewel beiden gewoon moeten werken, lijkt er inderdaad iets mis te zijn met NSURLConnection.

Anyway, deze code werkt probleemloos hier:

Objective-C:
1
2
3
4
5
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    // processing
}];

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 31-10 03:36

F.West98

Alweer 16 jaar hier

Topicstarter
Wauw bedankt! Ik krijg nu de foutmelding in ieder geval niet meer!
edit:
Het lijkt erop dat hij nog steeds geen request maakt (ik zie nergens enig resultaat) maar ik zal nog eens verder zoeken.

[ Voor 41% gewijzigd door F.West98 op 05-10-2014 21:35 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

Kijk ook eens naar CocoaPods zoals AFNetworking en Mantle

iOS developer


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 31-10 03:36

F.West98

Alweer 16 jaar hier

Topicstarter
Ik heb inmiddels de oorzaak gevonden, na een discussie in een ander topic: http://blog.shiz.me/post/...8192-bit-rsa-keys-in-os-x
OS X (en iOS) ondersteunen geen SSL certificaten met meer dan 4096 bits. Hierdoor werken mijn 8192 bits certificaten niet. In OS X is het gedrag meestal dat er niets gebeurt, of dat er een foutmelding komt in de browser/het programma. In iOS geeft dit dus een interne fatal error die mijn hele app laat crashen zonder enige vorm van een exception of error......

Ik kwam hier achter toen ik AFNetworking ging gebruiken, die gaf gewoon een error, en in de logs bleek dat de SSL handshake mislukt was. En toen koppelde ik dit probleem aan dat andere...

[ Voor 14% gewijzigd door F.West98 op 06-12-2014 16:46 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

Cool! Cocoapods FTW!

iOS developer

Pagina: 1