帮助解释堆栈跟踪

Posted

技术标签:

【中文标题】帮助解释堆栈跟踪【英文标题】:Help interpreting stack trace 【发布时间】:2011-09-15 16:19:48 【问题描述】:
Thread 12 Crashed:
0   libsystem_kernel.dylib          0x3076da1c __pthread_kill + 8
1   libsystem_c.dylib               0x35c8a3b4 pthread_kill + 52
2   libsystem_c.dylib               0x35c82bf8 abort + 72
3   libstdc++.6.dylib               0x33f61a64 __gnu_cxx::__verbose_terminate_handler() + 376
4   libobjc.A.dylib                 0x360f506c _objc_terminate + 104
5   libstdc++.6.dylib               0x33f5fe36 __cxxabiv1::__terminate(void (*)()) + 46
6   libstdc++.6.dylib               0x33f5fe8a std::terminate() + 10
7   libstdc++.6.dylib               0x33f5ff5a __cxa_throw + 78
8   libobjc.A.dylib                 0x360f3c84 objc_exception_throw + 64
9   Foundation                      0x31af8dea _NSOutOfMemoryErrorHandler + 38
10  CoreFoundation                  0x31e91496 __CFStringHandleOutOfMemory + 22
11  CoreFoundation                  0x31e951ea __CFStringChangeSizeMultiple + 506
12  CoreFoundation                  0x31e982c0 __CFStringCheckAndReplace + 148
13  Foundation                      0x31a81228 -[NSCFString appendString:] + 28
14  MyApp                           0x00016a86 -[XMLParser parser:foundCharacters:] (XMLParser.m:109)

在设备上使用 SIGABRT 崩溃。

XMLParser 代码 sn-p :

- (void)parser:(XMLParser *)parser foundCharacters:(NSString *)string

    if(!currentString)
    
        currentString = [[NSMutableString alloc] init];
    
        [currentString appendString:string]; // Line 109 that crashed   

为什么它会在附加 nil 字符串的情况下崩溃?或访问受保护的内存

【问题讨论】:

好吧,它说的是“_NSOutOfMemoryErrorHandler”。 'string' 变量有多少符号? 【参考方案1】:

_NSOutOfMemoryErrorHandler 非常清楚 - 您的内存不足。使用 Instruments 和内存泄漏等检查对设备来说内存过于密集的部分。

【讨论】:

以上是关于帮助解释堆栈跟踪的主要内容,如果未能解决你的问题,请参考以下文章

显示正在运行的 Python 应用程序的堆栈跟踪

apache分段错误堆栈跟踪

Oracle ErrorStack 使用和阅读具体解释

在 perl 中出现错误但没有堆栈跟踪的正确方法是啥?

在 Spring Boot 应用程序中防止自定义异常的堆栈跟踪日志记录

使用 sbt 和 testng 时,如何获取测试中抛出的异常的完整堆栈跟踪?