Если я использую класс Poco::XML::Document
, Visual Studio выдает утечку памяти после запуска приложения.
Я создал простой ConsoleApplication
из шаблонов проектов Visual Studio 2017 и добавил следующий код в Main
#include "pch.h"
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include <iostream>
#include <Poco/DOM/Document.h>
#include <Poco/DOM/AutoPtr.h>
int main()
{
Poco::AutoPtr<Poco::XML::Document> pDoc = new Poco::XML::Document;
std::cout << "Hello World!\n";
_CrtDumpMemoryLeaks();
return 0;
}
Это дамп утечки в Visual Studio (я пропустил некоторые части, потому что он действительно большой):
{1976} normal block at 0x0130C048, 8 bytes long.
Data: <, / > 2C 18 2F 01 00 00 00 00
{1975} normal block at 0x0130C0F0, 8 bytes long.
Data: < / > 10 18 2F 01 00 00 00 00
{1974} normal block at 0x0130BD70, 8 bytes long.
Data: < / > F4 17 2F 01 00 00 00 00
{1973} normal block at 0x0130BE88, 8 bytes long.
Data: < / > D4 17 2F 01 00 00 00 00
....
{174} normal block at 0x012D87E0, 8 bytes long.
Data: < > C4 0B 89 0F 00 00 00 00
{173} normal block at 0x012DB928, 32 bytes long.
Data: <%Y-%m-%dT%H:%M:%> 25 59 2D 25 6D 2D 25 64 54 25 48 3A 25 4D 3A 25
{172} normal block at 0x012D87A8, 8 bytes long.
Data: <d > 64 0E 89 0F 00 00 00 00
{171} normal block at 0x012D8AF0, 8 bytes long.
Data: <L > 4C 0B 89 0F 00 00 00 00
Object dump complete.
Я использую Poco в качестве DLL.
Версия Poco 1.9.0
Я также использовал Dr. Memory для обнаружения утечек памяти. Это краткое изложение утечки:
ERRORS FOUND:
12 unique, 12 total unaddressable access(es)
0 unique, 0 total uninitialized access(es)
146 unique, 201 total invalid heap argument(s)
0 unique, 0 total GDI usage error(s)
0 unique, 0 total handle leak(s)
0 unique, 0 total warning(s)
0 unique, 0 total, 0 byte(s) of leak(s)
0 unique, 0 total, 0 byte(s) of possible leak(s)