Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
8 / 8 / 4
Регистрация: 08.12.2022
Сообщений: 157

Поиск утечек

31.05.2024, 19:52. Показов 614. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю небольшой проект и хочу добавить в него отдельный класс, который будет выводить информацию о найденных утечках памяти. Проект имеет несколько файлов.
Написал вот такой класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma once
 
#define _CRTDBG_MAP_ALLOC
#include<iostream>
#include <crtdbg.h>
 
#ifdef _DEBUG
#define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)
#define new DEBUG_NEW
#endif
 
class MemoryLeakDetector
{
public:
    MemoryLeakDetector()
    {
        // Настройка режима отчета о памяти
        _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
        // Настройка файла для записи отчетов
        _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
    }
 
    ~MemoryLeakDetector()
    {
        // Проверка на наличие утечек памяти
        _CrtDumpMemoryLeaks();
    }
};
Он корректно работает при использовании в одном файле. А в проекте перестает выводить информацию о строке и остается только что-то типа этого
C++
1
{202} normal block at 0x000001E963B8F150, 28 bytes long. Data: <                > 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00
Как это исправить на нужный вывод? А именно в таком формате:
C++
1
2
файл(строка) : {75} normal block at 0x0000020E3D984F40, 40 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2024, 19:52
Ответы с готовыми решениями:

Обнаружение утечек памяти
в общем есть большой проект, изначально не мой. решил проверить весь код на утечки, подключил отлов: #ifdef _DEBUG #define...

Чтобы не было утечек памяти
Товарищи, такой вопрос: class node { int *a; double *b; vector&lt;node *&gt; vec; public: //тут методы }

Избежать утечек. Не получается сработаться с конструктором
В примере мало осталось, но мне нужна чья-либо помощь. Важно избежать утечек. В потенциале я вижу утечку. Если есть какие-то способы...

9
фрилансер
 Аватар для Алексей1153
6463 / 5671 / 1131
Регистрация: 11.10.2019
Сообщений: 15,109
31.05.2024, 19:57
Ifreqo, проще делать проект так, чтобы утечки просто не могли возникнуть. Не использовать new и new[] , не делать циклических ссылок между std::shared_ptr
0
8 / 8 / 4
Регистрация: 08.12.2022
Сообщений: 157
31.05.2024, 19:58  [ТС]
это понятно, но вопрос не об этом
0
 Аватар для Azathtot
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
31.05.2024, 20:20
Ifreqo, Вы нашли фатальный недостаток в valgrind?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
31.05.2024, 20:22
Azathtot, под винду завезли его?
0
8 / 8 / 4
Регистрация: 08.12.2022
Сообщений: 157
31.05.2024, 20:26  [ТС]
Azathtot, На данный момент я хочу разобраться со стандартными библиотеками и стороннее не очень интересует пока
0
459 / 246 / 15
Регистрация: 29.10.2014
Сообщений: 1,084
31.05.2024, 21:29
Цитата Сообщение от Ifreqo Посмотреть сообщение
стороннее не очень интересует пока
Это не "стороннее". Утечки в С++ не ищут, их не допускает программист. Говорят, что в других языках программирования утечек не допускает сам язык.
0
Лежебока
 Аватар для Donkix
328 / 244 / 95
Регистрация: 12.05.2021
Сообщений: 1,429
Записей в блоге: 2
31.05.2024, 21:39
commun,
Цитата Сообщение от commun Посмотреть сообщение
Говорят, что в других языках программирования утечек не допускает сам язык.
Это говорят про высокоуровневые языки?
0
459 / 246 / 15
Регистрация: 29.10.2014
Сообщений: 1,084
01.06.2024, 09:37
Про них.
0
8 / 8 / 4
Регистрация: 08.12.2022
Сообщений: 157
01.06.2024, 10:01  [ТС]
Donkix, commun, Croessmah, Azathtot, спасибо всем за совершенно бесполезные сообщения, не связанные с вопросом. Разобрался сам
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.06.2024, 10:01
Помогаю со студенческими работами здесь

Подключении механизма обнаружение утечек памяти
// output N number of M devide L.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot; #include...

Visual Studio 2015 Обнаружение утечек памяти
В 13 студии в окно лога отладчика выводилось сообщение. Вася забыл про оператор delete! Detected memory leaks! Dumping objects -&gt; ...

Как проверить наличие утечек памяти в шаблоне?
при удалении дерева есть подозрение что часть не удаляется. Количество вызовов деструкторов узлов меньше количества созданных. Такое...

Подскажите программу для диагностики утечек памяти
Здравствуйте. В одном блоге почитал, что диспетчер задач для диагностики утечек не предназначен. Подскажите пожалуйста программу, которая...

Если применять эту функцию к массиву, то он будет удаляться без всяких утечек памяти и т.п.?
//Функция удаления двумерного массива void delete_array(int** arr, int row) { for (int i = 0; i &lt; row; i++) { delete arr; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru