Вот как я отлаживаю APP с историей стека malloc на idevice, это действительно сложно, но у меня нет другого способа решить проблему с памятью пула автоматического выпуска.
Вам нужноИдея джейлбрейка с установленными инструментами разработчика, затем у вас есть gdb.
Чтобы включить журнал стека malloc, вам нужно установить переменные окружения MallocStackLoggingNoCompact и MallocStackLogging, для этого нам понадобится небольшой трюк.
Во-первых, нам нужно предоставить привилегию root для вашего приложения.
mv -f /User/Application/xxxxxxxxxxxxx/YOUR_APP.app /Application/YOUR_APP.app
cd /Application
chown -R root:wheel YOUR_APP.app
chmod 4755 YOUR_APP.app/YOUR_APP
Переименовать вашу программу
mv YOUR_APP.app/YOUR_APP YOUR_APP.app/BACK_UP_NAME
Используйте короткий сценарий оболочки для запуска вашей программытак что мы можем сохранить env.Сохраните его в YOUR_APP.app/YOUR_APP
#!/bin/bash
export MallocStackLogging=1
export MallocStackLoggingNoCompact=1
exec /Applications/YOUR_APP.app/BACK_UP_NAME
Готово.
Просто запустите ваше приложение, дотронувшись до значка или воспользовавшись командой open, вы увидите файл журнала стека в / tmpкаталог.
Использовать ps aux | grep YOUR_APP
найти идентификатор процесса, gdb -p PROCESS_ID
присоединить к прогрессу, создать точку останова, попробовать info malloc ADDRESS
, отобразится история malloc.