NS’s blog

便利な情報を発信します

View My Stats アクセスカウンター

【リコリコ展】ロボ太のPCはエラーを吐いていた。解析あり

アクセスカウンター

ロボ太(リコリコ)のPCでエラーが発生していたことが判明。

リコリコ展で展示してあったロボ太のPCで表示されていたものを画像認識&手入力し、加筆修正するとiOSのクラッシュレポートということが分かった。

クラッシュレポート全体

 
*1
 

解説

iOSのクラッシュレポート

クラッシュは「SpringBoard」というプロセスに関連していて、これはiOSのホーム画面やその他のシステムUIを管理する責任を持つものである。

クラッシュは「EXC_BAD_ACCESS」という例外によって引き起こされていて、これは通常、無効なアドレスにアクセスしようとすることによるメモリアクセスエラーを示す。つまりこれはメモリ管理の問題が原因とされる。

クラッシュは「libobjc.A.dylib」ライブラリ内でも発生していて「objc_retain」という関数内でクラッシュが発生していることがわかる。これはObjective-Cオブジェクトに関連するメモリ管理に関連する問題を示唆していて、クラッシュレポートによれば、クラッシュはスレッド0("com.apple.main-thread")でトリガーされている。スレッド0は通常、メインスレッドを表すものだ。

スタックトレースは、クラッシュまでに実行された関数呼び出しのシーケンスを示してる。

クラッシュは、"NtSpeed.dylib"というダイナミックライブラリに属する"Ntspeed update"メソッドの実行中にも発生したようだ。そして、"update"メソッドはUIKitフレームワークのUILabelの"_setText:"メソッドを呼び出している。これにより、UILabelのテキストを更新する際にクラッシュが発生している可能性がある。スタックトレースの最後には、メインスレッドが通常のiOSアプリケーションのエントリポイントである"UIApplicationMain"を実行していることが示されているが、実際のソースコードにアクセスできないため、クラッシュの正確な原因を特定することは難しい。しかし、最も可能性の高いのは、やはりメモリ管理の問題であり、解放されたオブジェクトにアクセスしたり、ヌルポインタを参照したりしている可能性がある。

*1:

Incident Identifier: 1EB5CC18-B647-4BCE-8CD6-5BACA9BFF316
CrashReporter Key:   5c22daa889fc9ad0ed0709daabc4c71781aeef6f621
Process:             SpringBoard [52624]
Path:                /System/Library/CoreServices/SpringBoard.app/SpringBoard
Identifier:          com.apple.springboard
Version:             50 (1.0)
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd (1)
Coalition:           com.apple.springboard [71]


OS Version:          OS 11.3.1 (151E302)
Baseband Version:    4.56.00
Report Version:      104

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000ad258bec8
VM Region Info: 0xad258bec8 is not in any region.  Bytes after previous region: 38425640649
      REGION TYPE                      START-END               [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      MALLOC_NAKO (reserved) 00000001d8000000-00000001e0000000 [128.0M] rw-/rwx SM=NUL  ...(unallocated)
--->      
      UNUSED SPACE AT END
Triggered by Thread: 0
Filtered syslog:
None found

Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0      libobjc.A.dylib                 Ox1820141a0 0x181ff0000 + 0x241a0   // objc_retain + 0x10
1      UIKit                           0x18ca27b68 0x18c9c8000 + 0x5fb68   // -[UILabel _setText:] + 0x28
2      NtSpeed.dylib                   0x103a9ed18 0x103a98000 + 0x6d18    // -[Ntspeed update] + 0x298
3      Foundation                      0x18388b3d4 0x183771000 + 0x11a3d4  // __NSfireTimer + 0x56
4      CoreFoundation                  0x182de7aa8 0x182cf9000 + 0xeeaa8   // __CFRunLoopDoTimerCFRunLOOP IS_CALLING_TO_A_TIMER_CALLBACK_FUNCTION__ + 0xlc
5      CoreFoundation                  0x182de776c 0x182cf9000 + 0xee76c   // __CFRunLoopDoTimer + 0xf8
6      CoreFoundation                  0x182de7010 0x182cf9000 + 0xee10    // __CFRunLoopDoTimers + 0xf8
7      CoreFoundation                  0x182de4b60 0x182cf9000 + 0xebb60   // __CFRunLoopRun + 0x878
8      CoreFoundation                  0x182d04da8 0x182cf9000 + 0xbda8    // CFRunLoopRunSpecific + 0x228
9      GraphicsServices                0x184ce7020 0x184cdc000 + 0xb020    // GSEventRunmodal + 0x64
10     UIKit                           0x18cce578c 0x18c9c8000 + 0x31d78c  // UIApplicationMain + 0xec
11     FrontBoard                      0x19924d19c 0x199224000 + 0x2919c   // FBSystemAppmain + 0x158
12     SpringBoard (*)                 0x100d6a664 0x100d54000 + 0x16664   // 0x000164b8 + 0xlac
13     libdyld.dylib                   0x182795fe0 0x182795000 + 0xfc0     // start + 0x4

Thread 1:
0       libsystem_kernel.dylib         0x1828c50f4 0x1828a3000 + 0x220f4   // __psynch_cvwait + 0x9
1       libsystem pthread.dylib        0x182a67c90 0x1828a3000 + 0x4c90    // _pthread_cond_waitSVARIANTSmp + 0x284
2       libc++.1.dylib                 0x181f7c25c 0x181f75000 + 0x725c    // std::__1::condition_variable::wait(std::__1__unidue_lock<std::__1::mutex>6) + 0x18
3       JavaScriptCore                 0x18a45b1a4 0x1899a0000 + 0xabb1a4  // void std::__1::condition_variable_any::wait<std::__1::unique_lock<bmalloc::Mutex> >(std::_
4       JavaScriptCore                 0x18a45adb8 0x1899a0000 + 0xabadb8  // bmalloc::Scavenger::threadRunLoop() + 0xa4
5       JavaScriptCore                 0x18a45adb8 0x1899a0000 + 0xabab60  // bmalloc::Scavenger::Scavernger(std::_1::lock_gurad<bmalloc::StaticMutex>6) + 0x0
6       JavaScriptCore                 0x18a45af7c 0x1899a0000 + 0xabaf7c  // void* std::__1::_thread_proxy<std::__1::unique_ptr<std::__1::__thread_struct<void* (*) (void*), std::__1::allocator<void* (*) (void*)>, void (&)(void*), std::__1::unique_ptr<std::__1::__thread_struct<void* (*) (void*), std::__1::allocator<void* (*) (void*)>, void (&)(void*)> > >(void*) + 0x0
7       libsystem_pthread.dylib        0x182a65220 0x182a60000 + 0x5220    // _pthread_start + 0x0

TVアニメ「Charlotte(シャーロット)」公式サイト