应用程序在访问主运行循环时崩溃(SIGABRT)?

时间:2015-01-13 08:33:13

标签: c++ objective-c c class

AppXYZ(2111,0xb04a3000) malloc: *** mach_vm_map(size=1207959552) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
libc++abi.dylib: terminating with uncaught exception of type std::bad_alloc: std::bad_alloc

如何从上述调试器日志中获取符号化信息?

就像我需要知道地址的类(0xb04a3000),代码中错误的确切位置等等。

2 个答案:

答案 0 :(得分:1)

在gdb中,我会按照它说的那样做,即在所提到的函数中放置一个断点:

$ gdb AppXYZ
[... gdb starts ...]
gdb$ break malloc_error_break
gdb$ run

重现导致崩溃的事情。非正式地,它似乎是因为它试图在一次malloc()呼叫中分配超过1 GB的内存,这在某些环境中相当大胆。

答案 1 :(得分:0)

从你的帖子我会说你的内存不足。

Malloc was not able to allocate the requested memory

这是因为您必须要求使用malloc分配大块内存。

我建议你减少要分配的内存量并尝试。

有关详细信息,请参阅Malloc Error Code = 3Malloc Error