访问主 运行 循环时应用程序崩溃 (SIGABRT)?
App getting crashed (SIGABRT) while accessing main run loop?
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
如何从上述调试器日志中获取符号信息?
比如我需要知道地址的class(0xb04a3000
),代码中bug的确切位置等等。
在gdb中,我会按照它说的去做,即在提到的函数中放置一个断点:
$ gdb AppXYZ
[... gdb starts ...]
gdb$ break malloc_error_break
gdb$ run
重现导致崩溃的原因。非正式地,这似乎是因为它试图在单个 malloc()
调用中分配超过 1 GB 的内存,这在某些环境中相当大胆。
从你的 post 我会说你 运行 内存不足。
Malloc was not able to allocate the requested memory
这是因为您必须使用 malloc 请求分配大块内存。
我建议您减少要分配的内存量并尝试。
参考Malloc Error Code = 3 and Malloc Error了解更多详情
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
如何从上述调试器日志中获取符号信息?
比如我需要知道地址的class(0xb04a3000
),代码中bug的确切位置等等。
在gdb中,我会按照它说的去做,即在提到的函数中放置一个断点:
$ gdb AppXYZ
[... gdb starts ...]
gdb$ break malloc_error_break
gdb$ run
重现导致崩溃的原因。非正式地,这似乎是因为它试图在单个 malloc()
调用中分配超过 1 GB 的内存,这在某些环境中相当大胆。
从你的 post 我会说你 运行 内存不足。
Malloc was not able to allocate the requested memory
这是因为您必须使用 malloc 请求分配大块内存。
我建议您减少要分配的内存量并尝试。
参考Malloc Error Code = 3 and Malloc Error了解更多详情