Анализ утечки памяти

Извините за общее название, но я не знаю, как лучше уточнить.

Я пишу программу на C ++ для MacOS 10.8.3. Я попытался проанализировать наличие утечек памяти с помощью инструментов Apple, и вот результаты

введите описание изображения здесь

К сожалению (на самом деле не знаю, почему) в дереве вызовов нет записей, поэтому я не смог понять, какой вызов ответственен за утечку.

Однако Instruments показывает адрес утечки памяти, поэтому я открыл gdb и подключил его к запущенному процессу, чтобы проанализировать содержимое памяти и получить некоторые подсказки об ошибке. Вот что вернул GDB

(gdb) x/s 0x7fa0f3400720
0x7fa0f3400720:  "OS_dispatch_queue_specific_queue"(gdb) x/s 0x7fa0f34005d0
0x7fa0f34005d0:  "OS_xpc_connection"(gdb) x/s 0x7fa0f3400640
0x7fa0f3400640:  "OS_dispatch_object"(gdb) x/s 0x7fa0f3400660
0x7fa0f3400660:  "OS_dispatch_queue"(gdb) x/s 0x7fa0f3400680
0x7fa0f3400680:  "OS_dispatch_source"(gdb) x/s 0x7fa0f34006a0
0x7fa0f34006a0:  "OS_dispatch_semaphore"(gdb) x/s 0x7fa0f34006c0
0x7fa0f34006c0:  "OS_dispatch_group"

и так далее. Очевидно, что в моем коде нет ни одной из этих строк.

Я широко использую pthreads для ускорения вычислений. Могут ли эти утечки быть вызваны некоторыми ошибками в моем использовании pthreads или причина в чем-то другом? На самом деле меня удивляет то, что утечки (относительно) малы, в то время как, если бы в моем коде была ошибка проектирования, я бы ожидал гораздо больших утечек (код работает некоторое время, и я создаю и уничтожаю сотни — если нет тысячи — ниток).

При необходимости я могу показать части своего кода (хотя проект не очень большой, он, безусловно, слишком большой, чтобы разместить его здесь).

Любое предложение приветствуется.

0

Решение

Я не знаю много об инструментах. Ты можешь попробовать Valgrind, это очень полезно для обнаружения утечки памяти.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]