11

iOS6MapKitでクラッシュすることがあります。本当に再現できません。これを引き起こす原因は何ですか?

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000044
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   IMGSGX543GLDriver               0x38f231b4 sgxTextureGetImageRowBytes(GLDTextureRec*, unsigned int, unsigned int) + 8
1   IMGSGX543GLDriver               0x38f23160 CalculateChunkPlaneSizes(GLDTextureRec*, int, unsigned int*, unsigned int*, unsigned int*, unsigned int*) + 104
2   IMGSGX543GLDriver               0x38f25906 sgxConfigureTexturePrivate(GLDTextureRec*) + 82
3   IMGSGX543GLDriver               0x38f24584 glrUpdateTexture + 616
4   libGPUSupportMercury.dylib      0x342c76b6 gldLoadFramebuffer + 102
5   GLEngine                        0x31b50e52 gleUpdateDrawFramebufferState + 178
6   GLEngine                        0x31b52556 gleDoDrawDispatchCoreES2 + 126
7   GLEngine                        0x31aedbc0 gleDrawArraysOrElements_Entries_Body + 140
8   GLEngine                        0x31aea5ec glDrawArrays_ES2Exec + 160
9   VectorKit                       0x3780dcd6 -[VKSkyModel drawScene:withContext:] + 326
10  VectorKit                       0x377e76d6 -[VKModelObject recursiveDrawScene:whenReadyWithContext:] + 118
11  VectorKit                       0x377621ea -[VKMapModel recursiveDrawScene:withContext:] + 278
12  VectorKit                       0x37762096 -[VKModelObject recursiveDrawScene:withContext:] + 186
13  VectorKit                       0x3775d4da -[VKScreenCanvas onTimerFired:] + 1014
14  VectorKit                       0x3775b548 -[VKMapCanvas onTimerFired:] + 500
15  VectorKit                       0x3775a3d2 -[VKMainLoop displayTimerFired:] + 610
16  QuartzCore                      0x3095b06c CA::Display::DisplayLink::dispatch(unsigned long long, unsigned long long) + 156
17  QuartzCore                      0x3095afc4 CA::Display::IOMFBDisplayLink::callback(__IOMobileFramebuffer*, unsigned long long, unsigned long long, unsigned long long, void*) + 60
18  IOMobileFramebuffer             0x331e4fd4 IOMobileFramebufferVsyncNotifyFunc + 152
19  IOKit                           0x36fc4446 IODispatchCalloutFromCFMessage + 190
20  CoreFoundation                  0x382a95d8 __CFMachPortPerform + 116
21  CoreFoundation                  0x382b4170 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32
22  CoreFoundation                  0x382b4112 __CFRunLoopDoSource1 + 134
23  CoreFoundation                  0x382b2f94 __CFRunLoopRun + 1380
24  CoreFoundation                  0x38225eb8 CFRunLoopRunSpecific + 352
25  CoreFoundation                  0x38225d44 CFRunLoopRunInMode + 100
26  GraphicsServices                0x3415f2e6 GSEventRunModal + 70
27  UIKit                           0x351b72fc UIApplicationMain + 1116
28  MyApp                           0x0005d78a main (main.m:14)
29  MyApp                           0x0005d744 start + 36
4

4 に答える 4

2

私はこれを見つけました。それはあなたがあなたの問題を解決するのを助けるかもしれません。

「問題:OpenGL ESベースのアプリケーションは、presentRenderBufferの呼び出し後に「点滅」または「古い」フレームを表示します。この症状は、OpenGLESアプリケーションが最初に何も描画せずにEAGLpresentRenderbufferメソッドを呼び出すと発生する可能性があります。初期化されていないピクセルまたは以前にレンダリングされたフレーム。この問題を修正するには、presentRenderbufferを呼び出す前に、常にフレームバッファに何かを描画する必要があります。また、CAEAGLLayerでRetainedBackbufferプロパティを設定して保持バックバッファモードを有効にしない限り、renderbufferの内容は保証されないことに注意してください。 presentRenderbufferの呼び出し後も有効なままです」。

-ルイス

于 2012-12-24T10:26:06.813 に答える
2

私は実際にiOSバージョンで問題を見つけました。ユーザーはiPad4、iOS 6.1.2で実行していましたが、6.1.3にアップグレードするとすぐに、問題は解決しました。これが誰かを助けることを願っています。

ありがとう、ティム

于 2013-03-27T13:39:15.767 に答える
0

私はこの正確な問題を抱えていましたが、それはメモリプレッシャーに関連したクラッシュであることが判明しました。マップが表示された4回目または5回目に、通常のようなタイルやグリッドの背景ではなく、黒の背景でマップが表示されたとき、それは一貫してクラッシュしていました。これは、iOS6.0と6.1および7.0のベータ版で発生しました。

マップビューを備えたビューコントローラーは、ナビゲーションスタックから削除された後、割り当てが解除されておらず、マップビューへの強い参照があり、メモリに保持されていました。

リークを修正した後、問題は解消されました。

于 2013-07-15T07:26:06.240 に答える
0

iPadでアプリをテストするこの体験をしたばかりです。シミュレーターでもデバイスでも問題なく実行されますが、同じ時点で同じエラーでクラッシュしました。

これが私の方法です-ユーザーの場所を示し、注釈がない非常に単純な地図:

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
    MKCoordinateSpan span = self.mapView.region.span;
    zoomLevel = span.latitudeDelta;
       shouldAdjustZoom = NO;
}

これがクラッシュログです

Incident Identifier: 01AE9C88-1F56-44D4-92A1-C6B5938DEBD4
CrashReporter Key:   f372f86613043286b74e70a8d1f9d7b1b5313cf5
Hardware Model:      iPad3,4
Process:         MyApp [1247]
Path:            /var/mobile/Applications/C39AEC49-8DB1-45DE-B175-A6AEC19D533F/MyApp.app/MyApp
Identifier:      MyApp
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2013-07-15 08:25:16.390 +0200
OS Version:      iOS 6.1.3 (10B329)
Report Version:  104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000044
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   IMGSGX554GLDriver               0x32ea6be0 0x32e99000 + 56288
1   IMGSGX554GLDriver               0x32ea6b8e 0x32e99000 + 56206
2   IMGSGX554GLDriver               0x32ea92f2 0x32e99000 + 66290
3   IMGSGX554GLDriver               0x32ea7f44 0x32e99000 + 61252

デバイスのバックグラウンドで実行されている多数のアプリ(主にキッズゲーム)を終了して再起動すると、正常に実行されました。たぶん、誰かが正確な問題を特定し、アプリの変更がクラッシュを防ぐことができるかどうかを特定するのに役立ちます。

于 2013-07-15T16:42:26.743 に答える