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
), точное местоположение ошибки в коде и так далее.
В gdb я просто буду делать то, что он говорит, т.е. поставить точку останова в упомянутой функции:
$ gdb AppXYZ
[... gdb starts ...]
gdb$ break malloc_error_break
gdb$ run
Воспроизводит то, что вызвало крах. Неформально это похоже на то, что он пытается выделить более 1 ГБ памяти в одном вызове malloc()
, что довольно дерзко в некоторых средах.
С вашего поста я бы сказал, что у вас закончилась память.
Malloc was not able to allocate the requested memory
Это связано с тем, что вы должны запросить выделение большого объема памяти с помощью malloc.
Я предлагаю вам уменьшить объем выделенной памяти и попробовать.
Обратитесь к коду Malloc Error Code = 3 и Malloc Error для получения более подробной информации