Пожалуйста, дайте мне знать, могу ли я это сделать или нет?
Я пишу библиотеку, которая могла бы работать для отслеживания выделения и удаления памяти в C ++. Короче говоря, я пытаюсь проверить, нет ли в моем приложении утечек памяти. Это то, что я сделал до сих пор.
Переопределить операторы new и delete и сейчас. Всякий раз, когда приложение использует новый, я планирую сохранить адрес и количество байтов, выделенных в этом вызове. Точно так же, когда удаление вызывается по этому адресу, я удаляю его из сохраненного списка. До сих пор это хорошо. Но я хочу сохранить имя файла и номер строки, откуда называется «новый». Я могу сделать это только в переопределенном новом. Есть ли способ получить номер строки в переопределенной функции?
1 int main()
2 {
3 // Say, A is a structure
4 A *a = new A();
5 return 0;
6 }
7 void* operator new( size )
8 {
9 //
10 // store the line number and file name on line 4 ??? Can I do it?
11 return (malloc(size));
12 }
------------------------