2015-01-13 2 views
0
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 

Как получить символическую информацию из вышеперечисленных журналов отладчика?Приложение получает сбой (SIGABRT) при доступе к основному циклу запуска?

Как мне знать класс адреса (0xb04a3000), точное местоположение ошибки в коде и так далее.

+0

Здесь вы найдете некоторые ценные ответы: http://stackoverflow.com/questions/7648642/how-to-use-addr2line-command-in-linux – marcinj

ответ

1

В БГД, я бы просто сделать, как он говорит, то есть поставить точку останова в функции упомянутой:

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

воспроизвести вещь, которая вызвала сбой. Неформально, похоже, потому, что он пытается выделить более 1 ГБ памяти в одном вызове malloc(), это довольно смело в некоторых средах.

0

С вашего поста я бы сказал, что у вас закончилась память.

Malloc was not able to allocate the requested memory 

Это связано с тем, что вы должны запросить большую часть памяти для распределения с помощью malloc.

Я предлагаю вам уменьшить объем выделяемой памяти и попробовать.

См Malloc Error Code = 3 и Malloc Error для получения более подробной информации