KSThread.c์์ EXC_BAD_ACCESS
-->if(dispatch_queue_ptr == NULL || idInfo->thread_handle == 0 || *dispatch_queue_ptr == NULL)
{
KSLOG_TRACE("์ด ์ค๋ ๋์๋ ๋์คํจ์น ํ๊ฐ ์ฐ๊ฒฐ๋์ด ์์ง ์์ต๋๋ค: %p", ์ค๋ ๋);
๊ฑฐ์ง์ ๋ฐํํฉ๋๋ค.
}
์ถฉ๋: ์ค๋ ๋
0 KSCrash 0x10056738c ksthread_getQueueName(KSThread.c:82)
1 KSCrash 0x100567370 ksthread_getQueueName(KSThread.c:75)
2 KSCrash 0x10053f6c8 monitorCachedData(KSCrashCachedData.c:84)
3 libsystem_pthread.dylib 0x18d021850
4 libsystem_pthread.dylib 0x18d021760 _pthread_start + 282
5 libsystem_pthread.dylib 0x18d01ed94 thread_start + 4
์ด๊ฒ์ ์ง๊ธ ๋ด #1 ์ถฉ๋์ ๋๋ค. ๋๊ตฐ๊ฐ ์ด ๋ฌธ์ ๋ฅผ ๋ณผ ์ ์์ต๋๊น? ์๋๋ฉด ์ด ํ๋ก์ ํธ์ ๋ด ์์ ์ ์ง์ ์ ๋ง๋ค์ด์ผ ํฉ๋๊น?
์ง๋ ๋ช ์ฃผ ๋์ (์ ์ง์ฅ) ์ผ๋ก ๋๋ฌด ๋ฐ๋นด์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ PR์ ํ๋ฉด ๋๋ ๋ณดํต ๊ทธ๊ฒ๋ค์ ๋น ๋ฅด๊ฒ ๋ณํฉํฉ๋๋ค!
๊ด์ฐฎ ๊ฐ์ฌ!
@ferrous777 ์ด์ด ์ข์ต๋๊น? ๋๋ ๋ํ์ด ์ถฉ๋์๋ณด๊ณ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ฌํํ๋ ๋ฐฉ๋ฒ์ ์ ์ ์์ง๋ง thread_identifier_info_t.dispatch_qaddr
dispatch_queue_ptr
๊ฐ ๊ฐ์ง ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐฉ๊ธ KSThread_Test๋ฅผ ๋ค์ ์ถ๊ฐํ๋ PR์ ์ ์ถํ์ง๋ง(https://github.com/kstenerud/KSCrash/pull/221) ์ด ๊ฐ์ง ํฌ์ธํฐ ๋์์ ์ ๊ณตํ๋ ํ
์คํธ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์ ์ ์์์ต๋๋ค.
e8977a426ab3ef83939a1929c9c4743ae314bcd1์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ์ญ์ฐธ์กฐ ์ ์ ์ ํจํ ํฌ์ธํฐ๋ฅผ ํ์ธํ์ง ์์์ต๋๋ค. ์ด๊ฒ์ ๋ํ 1.15.5๋ก ํ๊ทธ๊ฐ ์ง์ ๋์ด ์์ผ๋ฉฐ cocoapods๋ก ์ถ์ง ์ค์ ๋๋ค.
@kstenerud ์๋
ํ์ธ์, ์ด ์ปค๋ฐ์ ํ์ธํ์ต๋๋ค.
ํ์ง๋ง ์ด ์ฝ๋ ์ค์ ๊ฒฝ์ฐ:
dispatch_queue_t* dispatch_queue_ptr = (dispatch_queue_t*)idInfo->dispatch_qaddr;
๋น๋ํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์๋์?
๋์ผํ ์ค๋ฅ/์ถฉ๋ ๋ฐ์, ๋ฒ์ :
- KSCrash/Core (1.15.18):
- KSCrash/Reporting/Filters/Basic
- KSCrash/Recording (1.15.18):
- KSCrash/Recording/Tools (= 1.15.18)
- KSCrash/Recording/Tools (1.15.18)
- KSCrash/Reporting/Filters/Base (1.15.18):
- KSCrash/Recording
- KSCrash/Reporting/Filters/Basic (1.15.18):
- KSCrash/Recording
- KSCrash/Reporting/Filters/Base
๋ก๊ทธ:
[0 KSCrash 0x102e22754 ksthread_getQueueName + 132
1 KSCrash 0x102e22738 ksthread_getQueueName + 104
2 KSCrash 0x102e0a4c0 monitorCachedData + 288
3 libsystem_pthread.dylib 0x185bac2b4 _pthread_body + 308
4 libsystem_pthread.dylib 0x185bac180 _pthread_body + 310
5 libsystem_pthread.dylib 0x185baab74 thread_start + 4]
๋ฐฉ๊ธ KSCrash 1.15.18์์ ๋์ผํ ์ถฉ๋์ ๋ณด์์ต๋๋ค.
Thread 2 Crashed:
0 KSCrash 0x0000000103052280 ksthread_getQueueName + 320128 (KSThread.c:87)
1 KSCrash 0x0000000103052268 ksthread_getQueueName + 320104 (KSThread.c:80)
2 KSCrash 0x000000010302b050 monitorCachedData + 159824 (KSCrashCachedData.c:139)
3 libsystem_pthread.dylib 0x0000000182d6c31c 0x182d6a000 + 8988 ( + 308)
4 libsystem_pthread.dylib 0x0000000182d6c1e8 0x182d6a000 + 8680 (_pthread_start + 312)
์ถฉ๋์ OP์ ๋ฐ๋ผ ์ด ์ค์ ๋ณด๊ณ ๋ฉ๋๋ค.
if(dispatch_queue_ptr == NULL || idInfo->thread_handle == 0 || *dispatch_queue_ptr == NULL)
CrashDoctor ๋ณด๊ณ :
CrashDoctor Diagnosis: Attempted to dereference garbage pointer 0x16da23180.
์ ํ๋ฆฌ์ผ์ด์ ํต๊ณ๋ ์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋์ ์์์ ๋ํ๋ ๋๋ค. ๊ทธ๊ฒ์ด ์ด ์กฐ์ฌ์ ์ํฅ์ ๋ฏธ์น ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค!
idInfo
๊ฐ ์ถฉ๋ ์ฌ์ดํธ ์์ ๋ผ์ธ 79์์ ์ญ์ฐธ์กฐ๋๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ถฉ๋์ ์ผ์ผํค๋ ๊ฒ์ dispatch_queue_ptr
์ญ์ฐธ์กฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ 80ํ์ ์๋ dispatch_queue_ptr
์ ksmem_isMemoryReadable
๊ฒ์ฌ๊ฐ ์ ๋๋ก ์๋ํ์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํด์ผ ํฉ๋๊น?
ksmem_isMemoryReadable
๋ฐ ํด๋น ํธ์ถ ์์ ์๊ฐ ์์ง ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ์ง ๋ชปํด์ ์ง๊ธ ๋งํ์ต๋๋ค!
์๋ ํ์ธ์, Sentry๊ฐ ์๋ ์ฑ ์ค ํ๋์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
KSCrash
0x100faa834
ksthread_getQueueNameKSCrash/์์ค/KSCrash/๋
น์/๋๊ตฌ/KSThread.c:87
KSCrash
0x100f925a0
updateThreadListKSCrash/Source/KSCrash/Recording/KSCrashCachedData.c:84
KSCrash
0x100f925a0
monitorCachedDataKSCrash/Source/KSCrash/Recording/KSCrashCachedData.c:137
Podfile.lock:
์ต์์
@oleksandrlysenkov ์ถฉ๋์ ์ฌํํ ์ ์์ต๋๊น?
@Kmohamed ๊ฐ์ธ์ ์ผ๋ก ๋ด ์ฅ์น์์ ์ฌํํ ์ ์์ง๋ง ๋งค์ผ ์ด ๋ฒ๊ทธ์ ๋ํ Crashlytics ๋ก๊ทธ์ธ์ ์์ ํ๊ณ ํ์ฌ ๋ด ํ๋ก์ ํธ ์ค 2๊ฐ์์ ๊ฐ์ฅ ๋ง์ด ๋ํ๋๋ ์ถฉ๋์ ๋๋ค.
@oleksandrlysenkov ์ KSCrash ๋ฐ Crashlytics๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
๋ฐฉ๊ธ ๋์๊ฒ ์ถฉ๋์ด ๋ฐ์ํ์ต๋๋ค! ์ฑ์ ํฌ๊ทธ๋ผ์ด๋๋ก ์ ํํ ๋ ๋ฐ์ํ์ต๋๋ค. ์ฑ์ด ํฌ๊ทธ๋ผ์ด๋๋ก ์ ํ๋๋ ์ฆ์ ์ถฉ๋์ด ๋ฐ์ํ์ต๋๋ค. ์ผ๋ฐ์ ์ธ ์ถฉ๋์ฒ๋ผ UI๊ฐ ์ ์ ๋ํ๋ฌ๋ค๊ฐ ์ฌ๋ผ์ก์ต๋๋ค.
๋ถํํ๋ ๊ทธ๊ฒ์ ๊ธฐํธ๊ฐ ์๋ ๋๋ฒ๊ทธ ๋น๋์ ์์์ง๋ง ์ค๋ ๋ 0์ ์คํ ์ถ์ ๊ณผ ์ถฉ๋ํ๋ ์ค๋ ๋๋ ์ฑ์ด ๋ฌด์์ ํ๊ณ ์์๋์ง ๋ณด์ฌ์ค๋๋ค.
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: 0x00000000 at 0x000000016c2e7180
Crashed Thread: 2
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 QuartzCore 0x00000001882086c8 CA::Layer::mark_context_changed+ 1222344 (CA::Transaction*) + 48
1 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
2 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
3 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
4 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
5 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
6 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
7 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
8 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
9 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
10 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
11 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
12 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
13 QuartzCore 0x000000018820872c CA::Layer::mark_context_changed+ 1222444 (CA::Transaction*) + 148
14 QuartzCore 0x0000000188210078 CA::Layer::set_visible+ 1253496 (unsigned int) + 268
15 QuartzCore 0x0000000188170790 CA::Context::set_layer+ 599952 (void const*) + 228
16 UIKit 0x000000018dc57818 +[_UIContextBinder createContextForBindable:withSubstrate:] + 1080
17 UIKit 0x000000018dc57380 -[_UIContextBinder _contextForBindable:] + 132
18 UIKit 0x000000018dc22dc8 -[_UIContextBinder updateBindableOrderWithTest:force:] + 472
19 UIKit 0x000000018dc22a14 -[_UIContextBinder createContextsWithTest:creationAction:] + 100
20 UIKit 0x000000018dc25bb4 -[__UICanvasLifecycleMonitor_Compatability activateEventsOnly:withContext:completion:] + 784
21 UIKit 0x000000018e8bb72c __82-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]_block_invoke + 296
22 UIKit 0x000000018dc25268 -[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:] + 432
23 UIKit 0x000000018e6a09b8 __125-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]_block_invoke + 220
24 UIKit 0x000000018e7eeae8 _performActionsWithDelayForTransitionContext + 112
25 UIKit 0x000000018dc24c88 -[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:] + 248
26 UIKit 0x000000018dc24624 -[_UICanvas scene:didUpdateWithDiff:transitionContext:completion:] + 368
27 UIKit 0x000000018dc623b0 -[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:] + 468
28 FrontBoardServices 0x0000000186888f24 __80-[FBSSceneImpl updater:didUpdateSettings:withDiff:transitionContext:completion:]_block_invoke.362 + 212
29 libdispatch.dylib 0x000000018397cae4 _dispatch_client_callout + 16
30 libdispatch.dylib 0x00000001839b8b0c _dispatch_block_invoke_direct$VARIANT$armv81 + 216
31 FrontBoardServices 0x00000001868bc878 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 36
32 FrontBoardServices 0x00000001868bc51c -[FBSSerialQueue _performNext] + 404
33 FrontBoardServices 0x00000001868bcab8 -[FBSSerialQueue _performNextFromRunLoopSource] + 56
34 CoreFoundation 0x0000000184033404 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
35 CoreFoundation 0x0000000184032c2c __CFRunLoopDoSources0 + 276
36 CoreFoundation 0x000000018403079c __CFRunLoopRun + 1204
37 CoreFoundation 0x0000000183f50da8 CFRunLoopRunSpecific + 552
38 GraphicsServices 0x0000000185f33020 GSEventRunModal + 100
39 UIKit 0x000000018df3178c UIApplicationMain + 236
40 Charles 0x00000001048e51b8 0x10471c000 + 1872312 (main + 76)
41 libdyld.dylib 0x00000001839e1fc0 start + 4
Thread 2 Crashed:
0 KSCrash 0x00000001053da84c 0x105358000 + 534604 (ksthread_getQueueName + 280)
1 KSCrash 0x00000001053da828 0x105358000 + 534568 (ksthread_getQueueName + 244)
2 KSCrash 0x0000000105397bb0 0x105358000 + 261040 (updateThreadList + 436)
3 KSCrash 0x0000000105397710 0x105358000 + 259856 (monitorCachedData + 56)
4 libsystem_pthread.dylib 0x0000000183cb1220 _pthread_body + 272
5 libsystem_pthread.dylib 0x0000000183cb1110 _pthread_body + 0
Thread 3 name: KSCrash Exception Handler (Secondary)
Thread 3:
0 libsystem_kernel.dylib 0x0000000183aefe08 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000183aefc80 mach_msg + 72
2 KSCrash 0x00000001053a465c 0x105358000 + 312924 (handleExceptions + 268)
3 libsystem_pthread.dylib 0x0000000183cb1220 _pthread_body + 272
4 libsystem_pthread.dylib 0x0000000183cb1110 _pthread_body + 0
Thread 4 name: KSCrash Exception Handler (Primary)
Thread 4:
@Kmohamed ์ฐ๋ฆฌ๋ XCGLogger์ ๊ฐ์ ๋ค๋ฅธ ๋๊ตฌ ๋ด๋ถ์์ Fabric ๋ฐ KSCrash์ ํจ๊ป ์ผ๋ฐ์ ์ธ ์ถฉ๋ ๋ก๊น ์ ์ํด Crashlytics๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Crashlytics์์ Sentry๋ก ์ด์ ํ์ต๋๋ค. ๋ชจ๋ Crashlattics ์์ค๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค.
์ถฉ๋์ XCode=>Organizer=>Crashes :: AppStore=> (๋ฆด๋ฆฌ์ฆ๋ ๋ฒ์ ) => KSCrash ...์๋ ๋ํ๋ฉ๋๋ค. ์ค๋ ๋ 3์ ๋ชจ๋ ํญ๋ชฉ, KSCrash ksthread_getQueueName์ ๋ชจ๋ ํญ๋ชฉ์ ๋ค์์ ์ฐธ์กฐํฉ๋๋ค.
//thread_handle shouldn't be 0 also, because
//identifier_info->dispatch_qaddr = identifier_info->thread_handle + get_dispatchqueue_offset_from_proc(thread->task->bsd_info);
if(dispatch_queue_ptr == NULL || idInfo->thread_handle == 0 || *dispatch_queue_ptr == NULL)
{
KSLOG_TRACE("This thread doesn't have a dispatch queue attached : %p", thread);
return false;
}
์ด ๋ฌธ์ ๋ ํ๋ฃจ์ 10-20๋ฒ Sentry์ ๋ํ๋ฉ๋๋ค.
"๊ฐ๋น์ง ํฌ์ธํฐ 0x16b717180์ ์ญ์ฐธ์กฐํ๋ ค๊ณ ์๋ํ์ต๋๋ค."
๋ชจ๋ ์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํฉ๋๋ค. ์: ๋ฉ๋ชจ๋ฆฌ | ์ด: 1.9GB / ๋ฌด๋ฃ: 55.8MB / ์ฌ์ฉ ๊ฐ๋ฅ: 1.7GB
100MB ๋ฏธ๋ง์ ๋ชจ๋ ์ฌ์ ๋ฉ๋ชจ๋ฆฌ ๋๋ถ๋ถ 50MB ๋ฏธ๋ง
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์ Sentry ์ถ๊ฐ Logging with Breadcrumbs๋ ์ด๋ฒคํธ๋ฅผ ์์๋๋ก ๋ณด์ฌ์ค๋๋ค:
๋๋๋ก(๋ชจ๋ ๋ณด๊ณ ์์ 40-50%) ์ถฉ๋์ด AppDelegate applicationWillResignActive์ ๋ํ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ฑ์ ๋ ๋ฒ ๋ค์ ์์ํ๊ฑฐ๋ ํ ์ฌ์ฉ์๊ฐ ์ฑ์ ์ธ ๋ฒ ๋ค์ ์์ํด์ผ ํ๋ ๊ฒ๋ณด๋ค.
ํ
์คํธ๋ฅผ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋จน๋ ๋ ๋ฒ์งธ ์ ๊ฒฝ ์ฑ์ผ๋ก OOM ์ฑ ์ข
๋ฃ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค.
์ค์ํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ์๊ฐ์ ์ค์ด๋ ค๋ฉด ์ฒ์์ ๋ค์๊ณผ ๊ฐ์ด ์ฅ์น ๋ฉ๋ชจ๋ฆฌ์ ์ ๋ฐ์ ์์ฒญํฉ๋๋ค.
-(void)eatMemoryBigChunck
{
NSLog(@"Eating eatMemoryBigChunck");
unsigned long dinnerLength = 1024 * 1024 * 500;
...
์ฅ์น์์ ์ด๊ฒ์ ์๋ํ์ญ์์ค. ์๋ฎฌ๋ ์ดํฐ๊ฐ ํธ์คํธ Mac๊ณผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.
@kstenerud ๋๊ตฐ๊ฐ๊ฐ ๋ ๋์ ๊ฒ์ ์ฐพ์ ๋๊น์ง ์ด๊ฒ์ด ์ด ์ถฉ๋์ ๋ํ ์์ฉ ๊ฐ๋ฅํ ์๋ฃจ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. #281
์ถฉ๋์ด ์ฌ์ ํ ๋ํ๋ฉ๋๋ค. @kstenerud ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ถ๊ฐ ์กฐ์ฌ ํ ํด๋น ์ถฉ๋์ด ๋ฒ์ 1.15.16์์ 1.15.18๋ก ์
๋ฐ์ดํธํ ์งํ์ ๋ํ๋ฌ์ต๋๋ค. ๋๋ ObjC์ ๋ฅ์ํ์ง ์์ง๋ง ๋
ผ๋ฆฌ์ ์ผ๋ก ์ด ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ถฉ๋์ด ๋ํ๋ฉ๋๋ค - http://prntscr.com/jdpc70 http://prntscr.com/jdpcrd
์ถฉ๋์ ๋ํ ์ธ๋ถ ์ ๋ณด ๋งํฌ: http://crashes.to/s/149088e734b
@Kmohamed ๊ทํ์ Pull ์์ฒญ์ด ๋ด ์ฑ์ ๋ํ๋๋ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ KSCrash.c์ โโ94ํ์ ์์ง๋ง ์ถฉ๋์ 87ํ์ ๋ํ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ถฉ๋์ ํผํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ KSCrash ๋ฒ์ 1.15.16์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
์ค์ํ ์ ์๋ ์ถ๊ฐ ์ ๋ณด๊ฐ ํฌํจ๋ iTunes Connect์ ์ถฉ๋ ๋ณด๊ณ ์๊ฐ ์์ต๋๋ค. ๋ด๊ฐ ์ ์ ๋ณธ ๊ฒ๋ณด๋ค ๋ ๋ง์ ์ ๋ณด.
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x000000016d813180
VM Region Info: 0x16d813180 is not in any region. Bytes after previous region: 553345 Bytes before following region: 20096
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
Stack 000000016d690000-000000016d78c000 [ 1008K] rw-/rwx SM=PRV thread 0
---> GAP OF 0x8c000 BYTES
Stack Guard 000000016d818000-000000016d81c000 [ 16K] ---/rwx SM=NUL
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [0]
Triggered by Thread: 2
Thread 2 Crashed:
0 KSCrash 0x0000000102d42280 ksthread_getQueueName + 128 (KSThread.c:87)
1 KSCrash 0x0000000102d42268 ksthread_getQueueName + 104 (KSThread.c:80)
2 KSCrash 0x0000000102d1b050 monitorCachedData + 288 (KSCrashCachedData.c:84)
3 libsystem_pthread.dylib 0x0000000181825220 _pthread_body + 272 (pthread.c:740)
4 libsystem_pthread.dylib 0x0000000181825110 _pthread_start + 292 (pthread.c:799)
5 libsystem_pthread.dylib 0x0000000181823b10 thread_start + 4
์ ๋ ์
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง!!
์ด๊ฒ์ ๋ํ ํ์ฌ ์ฐ๋ฆฌ์ 1์ ์ถฉ๋์ ๋๋ค.
์ด๊ฒ์ ๋ด ์ฑ์ ์์ 1๊ฐ ์ถฉ๋์ ๋๋ค.
๋์ผํ ๋ฌธ์ ๊ฐ ์ฌ๊ธฐ์ ์์ต๋๋ค. Sentry๋ฅผ ํตํด ๋๋๋ก ์ด ์ถฉ๋์ ์์ ํฉ๋๋ค.
์ธ๋ถ:
OS Version: iOS 11.3.1 (15E302)
Report Version: 104
Crashed Thread: 2
Application Specific Information:
Attempted to dereference garbage pointer 0x16dc8f180.
Thread 2 Crashed:
0 KSCrash 0x10282dba8 ksthread_getQueueName (KSThread.c:87)
1 KSCrash 0x102815a38 [inlined] updateThreadList (KSCrashCachedData.c:84)
2 KSCrash 0x102815a38 monitorCachedData (KSCrashCachedData.c:137)
3 libsystem_pthread.dylib 0x305450220 <redacted>
4 libsystem_pthread.dylib 0x305450110 _pthread_start
@WingedDoom @xlbs-rm sentry-cocoa
4.x.x
์ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ KSCrash์์ ์ง์ ์์ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์์ ์์ ํด์ผ ํฉ๋๋ค.
@HazAT ์ค, ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค! ์ผํธ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด ์ค์ ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
@HazAT getQueueName ๊ธฐ๋ฅ์ ์ ๊ฑฐํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๊น? ์๋๋ฉด ์ด ์ถฉ๋์ ๊ทผ๋ณธ ์์ธ์ ์ฐพ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋ชจ๋ ์ฌ๋์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก Pull Request๋ฅผ ์์ฑํ์๊ฒ ์ต๋๊น?
@harp79 ๋ฌธ์ ๋ฅผ ์์ ํ ํํค์น ์๊ฐ์ด ์์๊ธฐ ๋๋ฌธ์ ์ง๊ธ์ ์ญ์ ํ์ต๋๋ค.
Sentry-Cocoa 4.1.0์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ด ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค.
์์ง๋ ์ด๊ฒ์ ๊ฐ๋ก์ง๋ฌ ๋ฌ๋ฆฌ๋ ์ฌ๋์ด ์์ต๋๊น?
๋ค, ์ฌ์ ํ ๋ฌธ์ ์ ๋๋ค. Crashlytics์์ ๋ณด๊ณ ํ 1์(์ด๋ค ์ด์ ๋ก๋ 6์) ํฌ๋์
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง
๋ด ์ดํด๋ Sentry 4.1.0์ด ๋ ์ด์ ์ด๊ฒ์ ์ฌ์ฉํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@HazAT getQueueName ๊ธฐ๋ฅ์ ์ ๊ฑฐํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๊น? ์๋๋ฉด ์ด ์ถฉ๋์ ๊ทผ๋ณธ ์์ธ์ ์ฐพ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋ชจ๋ ์ฌ๋์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก Pull Request๋ฅผ ์์ฑํ์๊ฒ ์ต๋๊น?