Как отладить сбой Flutter iOS - PullRequest
       5

Как отладить сбой Flutter iOS

1 голос
/ 24 января 2020

Мы получаем некоторые сбои в нашем дистрибутиве Testflight нашего флаттера. Нам трудно точно определить, в чем именно заключается проблема, поскольку журнал cra sh мало о чем нам говорит.

Вот журнал ( сущность полного cra * sh log / Скриншот Xcode ):

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x00000003b3801090
VM Region Info: 0x3b3801090 is not in any region.  Bytes after previous region: 4622127249  
      REGION TYPE                      START - END             [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      MALLOC_NANO            0000000280000000-00000002a0000000 [512.0M] rw-/rwx SM=PRV  
--->  
      UNUSED SPACE AT END

Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [4572]
Triggered by Thread:  0

Thread 0 name:
Thread 0 Crashed:
0   libobjc.A.dylib                 0x000000018a902090 objc_msgSend + 16
1   Flutter                         0x00000001009d6f4c -[SemanticsObject hasChildren] + 60 (accessibility_bridge.mm:160)
2   Flutter                         0x00000001009d8334 -[SemanticsObject accessibilityContainer] + 36 (accessibility_bridge.mm:287)
3   UIAccessibility                 0x0000000195f88898 -[NSObject(AXPrivCategory) _accessibilityParentView] + 84 (NSObjectAccessibility.m:7787)
4   UIAccessibility                 0x0000000195f88734 -[NSObject(AXPrivCategory) _accessibilityWindow] + 92 (NSObjectAccessibility.m:7762)
5   UIAccessibility                 0x0000000195f8ff68 -[NSObject(AXPrivCategory) _accessibilityConvertSystemBoundedScreenRectToContextSpace:] + 48 (NSObjectAccessibility.m:10192)
6   UIAccessibility                 0x0000000195f83ee8 -[NSObject(AXPrivCategory) _iosAccessibilityAttributeValue:] + 4624 (NSObjectAccessibility.m:5303)
7   UIAccessibility                 0x0000000195f6637c _copyMultipleAttributeValuesCallback + 540 (UIAccessibilityRuntime.m:345)
8   AXRuntime                       0x0000000194fc56e0 ___AXXMIGCopyMultipleAttributeValues_block_invoke + 60 (AccessibilityPriv.m:1262)
9   AXRuntime                       0x0000000194fc5264 _handleNonMainThreadCallback + 60 (AccessibilityPriv.m:466)
10  AXRuntime                       0x0000000194fc5570 _AXXMIGCopyMultipleAttributeValues + 332 (AccessibilityPriv.m:1261)
11  AXRuntime                       0x0000000194fbf4b4 _XCopyMultipleAttributeValues + 392 (AccessibilityClientDefsServer.c:1354)
12  AXRuntime                       0x0000000194fd443c mshMIGPerform + 268 (MachServerHelper.c:447)
13  CoreFoundation                  0x000000018ab5d07c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 56 (CFRunLoop.c:1937)
14  CoreFoundation                  0x000000018ab5c7a8 __CFRunLoopDoSource1 + 444 (CFRunLoop.c:2075)
15  CoreFoundation                  0x000000018ab5767c __CFRunLoopRun + 2168 (CFRunLoop.c:3098)
16  CoreFoundation                  0x000000018ab56adc CFRunLoopRunSpecific + 464 (CFRunLoop.c:3192)
17  GraphicsServices                0x0000000194adc328 GSEventRunModal + 104 (GSEvent.c:2246)
18  UIKitCore                       0x000000018ec51ae0 UIApplicationMain + 1936 (UIApplication.m:4773)
19  Runner                          0x0000000100666cec main + 96 (AppDelegate.swift:5)
20  libdyld.dylib                   0x000000018a9e0360 start + 4

Мы попытались обозначить логи далее, следуя этому руководству https://github.com/flutter/flutter/wiki/Crashes. Выполните следующие действия:

  • Получите ревизию нашего движка флаттера
  • Загрузите нужный файл dSYM для нашей версии Flutter.framework
  • Попробуйте обозначить символами:
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

cp -i /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash ./

symbolicatecrash 2020-01-11.crash Flutter.dSYM > symbolicated.crash

Но в действительности это не улучшилось, см. Изменения в этой сущности

Любые советы о том, с чего начать поиск программной ошибки, которая вызвала подобные сбои, подобные этой , Мы ищем оба совета по отладке внутренних сбоев флаттера в целом, и это конкретный случай c.

Кроме того, мы не можем воспроизвести этот cra sh, так как мы не знаем, где смотреть.

1 Ответ

0 голосов
/ 27 января 2020

В соответствии с вашим отчетом cra sh VM Region Info: 0x3b3801090 is not in any region. Вероятно, cra sh происходит из-за того, что к какой-то не выделенной памяти осуществляется доступ ... Это может происходить из-за того, что ___AXXMIGCopyMultipleAttributeValues_block_invoke вызывается извне основного потока (выглядит вроде по трассировке стека). Но я не знаю, сможете ли вы отладить lib AXRuntime.

Вы пытались символизировать отчет cra sh с окном просмотра журналов в xcode? (у вас должен быть физический iphone X (iphone10), чтобы архитектура не терялась в середине процесса ... Эта страница может помочь.

...