C/C++ - Определение утечки памяти в консольном приложении C++ с помощью MinGW

Ответить
Аватара пользователя
tumanovalex

C/C++ - Определение утечки памяти в консольном приложении C++ с помощью MinGW

Сообщение tumanovalex »

В режиме отладки простой консольной программы:

Код:

Код: Выделить всё

#include 
#include 
#include  
int main()
{
  int tmpDbgFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
  tmpDbgFlag |= _CRTDBG_DELAY_FREE_MEM_DF;
  tmpDbgFlag |= _CRTDBG_LEAK_CHECK_DF;
  tmpDbgFlag |= _CRTDBG_DELAY_FREE_MEM_DF;
  _CrtSetDbgFlag(tmpDbgFlag);
  int* p = NULL, N = 3;
  p = (int*)malloc(sizeof(int) * N);
  // free(p);
  return 0;
}

Visual Studio сообщает об утечки памяти: "

Detected memory leaks!

Dumping objects ->

{159} normal block at 0x000001A602D37C50, 12 bytes long.

Data: < > CD CD CD CD CD CD CD CD CD CD CD CD

CodeBlocks c MinGW и gdb сообщает только, что "D:\MyProgramming\cbBookExamles\main.cpp|12|warning: variable 'p' set but not used [-Wunused-but-set-variable]|"

Подскажите, пожалуйста, как настроить компилятор (отладчик), чтобы появились сообщения об утечки памяти.
Аватара пользователя
tumanovalex

Re: C/C++ - Определение утечки памяти в консольном приложении C++ с помощью MinGW

Сообщение tumanovalex »

Жалко. Я последнее время использую MinGW и CodeBlocks и хотелось бы, чтобы были такие же возможности, как и у компилятора Microsoft. Ну на нет и суда нет.
Аватара пользователя
lxa85

Re: C/C++ - Определение утечки памяти в консольном приложении C++ с помощью MinGW

Сообщение lxa85 »

Что в ключах сборки?

Он пишет -- set, but not used. А раз not used, то может и не выделяет вовсе.

Оптимизация, все дела.

Ну и статический анализатор до кучи.
Аватара пользователя
tumanovalex

Re: C/C++ - Определение утечки памяти в консольном приложении C++ с помощью MinGW

Сообщение tumanovalex »

А почему Visual Studio определяет? Мне нужно сравнить ключи у Visual Studio и gcc?
Ответить

Вернуться в «Программирование и базы данных»