У меня есть основной дамп из приложения с утечкой памяти. Я использовал команду Strings и XDD для изучения файла, и у меня есть несколько идей, о которой часть программы может нести ответственность за утечку. Я могу запустить файл сердечника в GDB с приложением, но я не могу сделать много тестирования с этим, потому что это встроенное приложение с большим количеством сложных временных ввода / о, которые я не могу имитировать в офисе Отказ
Я также слышал, что работает с различными утилизатами обнаружения утечки памяти, замедляет приложение, которое мы не можем позволить себе, потому что он уже работает рядом с мощностью CPU.
Так что на данный момент все, что у меня есть, это основной файл. Пример того, что я ищу: есть ли стол указания, которую я могу изучить, чтобы найти память, которая была распределена, которую я могу использовать, чтобы попытаться найти вещи, которые должны были быть освобождены, но не было?
-121-12-12 --1251182-Я пытаюсь сделать это таким образом:
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;
}
Является ли моя реализация правильно? Я получил ошибку компиляции.