powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / микрософт, crtdbg.h, утечки памяти ++
10 сообщений из 10, страница 1 из 1
микрософт, crtdbg.h, утечки памяти ++
    #39218849
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
расскажите, плз, что тут очевидного
https://habrahabr.ru/post/82514/ Так сложилось, что по версию Microsoft Visual C++ 6.0 за эту информацию отвечала следующее переопределение функции new в хедере crtdbg.h:

#ifdef _CRTDBG_MAP_ALLOC
inline void* __cdecl operator new(unsigned int s)
{ return ::operator new(s, _NORMAL_BLOCK, __FILE__, __LINE__); }
#endif /* _CRTDBG_MAP_ALLOC */

* This source code was highlighted with Source Code Highlighter.


И, нетрудно догадаться, это не давало желаемого результата, __FILE__:__LINE__ всегда разворачивались в «crtdbg.h file line 512».

почему не давало результата
...
Рейтинг: 0 / 0
микрософт, crtdbg.h, утечки памяти ++
    #39219301
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz,

Ты бы не читал всякую хрень в интернете...

Там надо было ещё В КАЖДОМ ИСХОДНИКЕ в начале переопределять new на _DEBUG_NEW или что-то в этом роде.
ЯВНО, В КАЖДОМ *.cpp
...
Рейтинг: 0 / 0
микрософт, crtdbg.h, утечки памяти ++
    #39219347
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЯВНО, В КАЖДОМ *.cpp , Карл!
...
Рейтинг: 0 / 0
микрософт, crtdbg.h, утечки памяти ++
    #39219430
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,
это, стыдно признаться, но согласно статье я результата добился (про обнаружение имени
файла и строчки в котором захватывалась неосвобожденная память).
Про каждый файл я недопонял, но stdlib.h я же в каждый файл включаю?
и EOF в каждом файле задается.
...
Рейтинг: 0 / 0
микрософт, crtdbg.h, утечки памяти ++
    #39219536
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz,

я может и позабыл все, это во времена программирования меня на MFC было,
но там есть такая тонкость, что тебе нужно только тот код отслеживать, который только твой, т. е. даже помодульно по модулям трансляции не годится, потому что в каждом модуле есть как твой код, так и чужой, из заголовков. Поэтому где-то надо включить переключатель "дальше идет мой код ".

в статье об этом вроде бы ни слова, что как бы намекает на её "высокий технический уровень".
...
Рейтинг: 0 / 0
микрософт, crtdbg.h, утечки памяти ++
    #39219538
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

Да нормально там все было. Не то чтобы идеально, но помогала опция в поиске.
...
Рейтинг: 0 / 0
микрософт, crtdbg.h, утечки памяти ++
    #39219540
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще раз перечитал статью, нет, товарищь там явно не доработал...

там operator new должен быть перегруженный в debug режиме, с двумя дополнительными параметрами: файл и строка.
...
Рейтинг: 0 / 0
микрософт, crtdbg.h, утечки памяти ++
    #39220357
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglMasterZiv,

Да нормально там все было. Не то чтобы идеально, но помогала опция в поиске.

Где и что было нормально ?
...
Рейтинг: 0 / 0
микрософт, crtdbg.h, утечки памяти ++
    #39221582
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivеще раз перечитал статью, нет, товарищь там явно не доработал...

там operator new должен быть перегруженный в debug режиме, с двумя дополнительными параметрами: файл и строка.
ну, я в защиту товарища выступлю. Он так и сделал.


Код: plaintext
1.
#define new new( _NORMAL_BLOCK, __FILE__, __LINE__)



То что выше приводилось -
это от программеров микрософта

пысы
ну разве что нужно сделать условную компиляцию
#ifdef _DEBUG
#define new new( _NORMAL_BLOCK, __FILE__, __LINE__)
#endif
...
Рейтинг: 0 / 0
микрософт, crtdbg.h, утечки памяти ++
    #39236835
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz#ifdef _DEBUG
#define new new( _NORMAL_BLOCK, __FILE__, __LINE__)
#endif
для маллос, саллос, реаллок переопределение с запоминанием имени файла и номера строки
уже сделано в crtdbg.h
и будет работать при заданных макросах

#define _CRTDBG_MAP_ALLOC
и

_DEBUG
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / микрософт, crtdbg.h, утечки памяти ++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]