Есть ли способ найти утечку памяти, используя основной файл?

У меня есть основной дамп из приложения с утечкой памяти. Я использовал команду Strings и XDD для изучения файла, и у меня есть несколько идей, о которой часть программы может нести ответственность за утечку. Я могу запустить файл сердечника в GDB с приложением, но я не могу сделать много тестирования с этим, потому что это встроенное приложение с большим количеством сложных временных ввода / о, которые я не могу имитировать в офисе Отказ

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

Так что на данный момент все, что у меня есть, это основной файл. Пример того, что я ищу: есть ли стол указания, которую я могу изучить, чтобы найти память, которая была распределена, которую я могу использовать, чтобы попытаться найти вещи, которые должны были быть освобождены, но не было?

-121-12-12 --1251182- Как оператор перегрузки << для массива в C ++? Я пытаюсь сделать это таким образом: шаблон OSTream & Operator << (OstTream & OS, T & ARR) {/*...*/} Но не может представлять массив? Правильно ли перегружать << ...

Я пытаюсь сделать это таким образом:

template <typename T>
ostream &operator<<(ostream &os, T &arr)
{ /*...*/ }

Но может T представляют собой массив? Это верно для перегрузки оператора << << << << << для массива?


Редактировать:

Согласно рекомендациям Kerrek SB, вот моя реализация для << :

template <typename T, unsigned int N>
ostream &operator<<(ostream &os, const T (&arr)[N])
{
    int i;
    for(i = 0; i < N; i++)
        os << arr[i] << " ";
    os << endl;
    return os;
}

Является ли моя реализация правильно? Я получил ошибку компиляции.

6
задан Mateen Ulhaq 16 September 2011 в 02:12
поделиться