Действительно ли утечка памяти или программа просто потребляет больше памяти, чем дольше она работает? Другими словами, возможно, программа создает большую динамическую структуру данных (связанный список и т. Д.), Которая просто продолжает расти? Пока программа имеет указатель на память, это на самом деле не утечка, но если выделения никогда не освобождаются, каждый новый получит больше памяти от ОС. Это также объясняет, почему используемые вами инструменты не сообщали об «утечках».
Когда мне приходилось делать это, я делал такие вещи, как запись журнала в плоский файл каждый раз, когда моя программа выделяла память и освобождала ее. Сообщения будут включать такие вещи, как имя файла и строка программы, где была выделена память, и адрес, возвращаемый из malloc при выделении памяти, или аналогично имя файла и строка программы, где была освобождена память, и адрес освобождаемого буфера. Затем вы можете отсортировать полученный файл по адресу, и эти адреса с сообщением «ALLOCATE», но без сообщения «FREE», являются теми, которые могли просочиться или, по крайней мере, не были освобождены к моменту завершения программы. Это может занять много времени для внедрения, и автоматизированные инструменты лучше, если они у вас есть, но в зависимости от ваших обстоятельств вам, возможно, придется сделать что-то подобное.
Или, возможно, вы захотите просто надуть и использовать сборщик мусора. Коллектор Boehm может работать на вас - взгляните на http://www.hpl.hp.com/personal/Hans_Boehm/gc/.
Делись и наслаждайся.