TextInput崩溃 - 如何调试?

5

我收到了有关我的iOS应用程序崩溃报告,其中包含以下或类似的崩溃线程堆栈信息:

0   TextInput                           0x0003149a TIInputManager::apply_case_changes_to_result(std::vector >&, KB::Hashmap const&, std::vector > const&) const + 402
1   TextInput                           0x00030bf3 TIInputManager::lookup() + 863
2   TextInput                           0x000307ad TIInputManager::autocorrection() + 61
3   TextInput                           0x00042d21 -[TIKeyboardInputManagerZephyr autocorrection] + 137
4   UIKit                               0x0011a319 -[UIKeyboardImpl generateCandidatesWithOptions:] + 377
5   UIKit                               0x00133071 -[UIKeyboardImpl addInputString:fromVariantKey:] + 2597
6   UIKit                               0x00130f8d -[UIKeyboardImpl handleKeyEvent:] + 1453
7   UIKit                               0x001308b7 -[UIKeyboardLayoutStar sendStringAction:forKey:isPopupVariant:] + 487
8   UIKit                               0x0012f3ad -[UIKeyboardLayoutStar touchUp:] + 3101
9   UIKit                               0x0012e737 -[UIKeyboardLayout touchesEnded:withEvent:] + 387
10  UIKit                               0x000165f9 -[UIWindow _sendTouchesForEvent:] + 525
11  UIKit                               0x00003809 -[UIApplication sendEvent:] + 381
12  UIKit                               0x00003123 _UIApplicationHandleEvent + 6155
13  GraphicsServices                    0x000065a3 _PurpleEventCallback + 591
14  GraphicsServices                    0x000061d3 PurpleEventCallback + 35
15  CoreFoundation                      0x00097173 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 35
16  CoreFoundation                      0x00097117 __CFRunLoopDoSource1 + 139
17  CoreFoundation                      0x00095f99 __CFRunLoopRun + 1385
18  CoreFoundation                      0x00008ebd CFRunLoopRunSpecific + 357
19  CoreFoundation                      0x00008d49 CFRunLoopRunInMode + 105
20  GraphicsServices                    0x000052eb GSEventRunModal + 75
21  UIKit                               0x00057301 UIApplicationMain + 1121
22  MyApp                               0x0000294b main (main.mm:8)

只有最底部的一行 (main) 是我的。看起来崩溃发生在文本输入框架内的触摸事件处理程序中,与自动更正有关。

这些崩溃以令人沮丧的一致性出现 - 这似乎是我的一个微妙的错误,而不是iOS本身的错误。调用堆栈是不一致的 - 有时它以UIKit结束,有时以libobjc结束。但是,iOS版本似乎始终为6.x。

请问如何调试这个问题?

编辑:线程0中的SIGSEGV / SEGV_ACCERR。错误地址会变化 - 有时为零,有时不为零。


2
你如何实现文字输入?Xcode 在哪里显示错误?你尝试过运行 nszombies 吗?你尝试了什么?你的问题中没有任何有助于他人帮助你的信息,请更具体地描述问题。 - Coder404
文本框通过 NIB 文件实例化,非常普通。Xcode 没有显示错误;这个错误是通过实时崩溃报告服务(QuincyKit/PLCrashReporter)从用户设备传递给我的。如果有明确的调试路径或至少能够重现此问题,我就不会问这个问题了。 - Seva Alekseyev
2
有异常吗?EXC_BAD_ACCESS?如果我们不知道实际抛出的错误,堆栈跟踪就没有帮助。 - nrj
1
TIInputManager是什么?您正在使用框架吗? - mszaro
不使用第三方框架(除了PLCrashReporter),全部使用原生iOS SDK。 - Seva Alekseyev
显示剩余4条评论
2个回答

0

这实际上是苹果的错误。进入模拟器上的设置(即模拟器上的设置应用程序),关闭自动更正。


这是发生在用户设备上,而不是模拟器上。 - Seva Alekseyev

0

我看到了iOS 6.1.3(两次)和6.1.4(一次)上相同的问题,都在崩溃日志中报告的领域中。所有似乎都是在苹果的C++代码中深处发生了nil指针引用。我认为除了向苹果提交错误报告(我提出了一个编号为:15573020的报告)之外,我们无能为力。苹果将重复报告视为优先处理漏洞的指标,因此如果您遭受了类似问题,我建议您在https://bugreport.apple.com上添加报告并引用我提供的报告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接