C++开源库POCO里面的std:string存在内存泄露吗?

利白 2019-05-28 11:21:51
最近做项目用到了C++开源库POCO。使用了博客https://blog.csdn.net/rye_grass/article/details/1551985提到的内存检测工具。
软件退出时,检测到内存泄露信息,输出结果如下:

Detected memory leaks!
Dumping objects ->
{259} normal block at 0x00577BB8, 32 bytes long.
Data: <%<>{}|\"^`!*'()$> 25 3C 3E 7B 7D 7C 5C 22 5E 60 21 2A 27 28 29 24
{258} normal block at 0x0057E2D8, 8 bytes long.
Data: <4 > 34 D9 96 01 00 00 00 00
{257} normal block at 0x0057E2A0, 8 bytes long.
Data: <P > 50 D9 96 01 00 00 00 00
{256} normal block at 0x0057E268, 8 bytes long.
Data: < > 18 D9 96 01 00 00 00 00
{255} normal block at 0x0057E230, 8 bytes long.
Data: < > F8 D8 96 01 00 00 00 00
{254} normal block at 0x0057E1F8, 8 bytes long.
Data: < > DC D8 96 01 00 00 00 00
{253} normal block at 0x0057E1C0, 8 bytes long.
Data: <x > 78 D8 96 01 00 00 00 00
{252} normal block at 0x0057E188, 8 bytes long.
Data: < > F4 D6 96 01 00 00 00 00
{251} normal block at 0x0057E150, 8 bytes long.
Data: < > D8 D6 96 01 00 00 00 00
{250} normal block at 0x0057E118, 8 bytes long.
Data: < > BC D6 96 01 00 00 00 00
{249} normal block at 0x0057E0E0, 8 bytes long.
Data: < > A0 D6 96 01 00 00 00 00
{248} normal block at 0x0057E0A8, 8 bytes long.
Data: < > 84 D6 96 01 00 00 00 00
{247} normal block at 0x0057E070, 8 bytes long.
Data: <h > 68 D6 96 01 00 00 00 00
{246} normal block at 0x0057E038, 8 bytes long.
Data: <L > 4C D6 96 01 00 00 00 00
{245} normal block at 0x0057E000, 8 bytes long.
Data: <0 > 30 D6 96 01 00 00 00 00
{244} normal block at 0x0057DFC8, 8 bytes long.
Data: < > 14 D6 96 01 00 00 00 00
{243} normal block at 0x0057DF90, 8 bytes long.
Data: < > F8 D5 96 01 00 00 00 00
{242} normal block at 0x0057DF58, 8 bytes long.
Data: < > DC D5 96 01 00 00 00 00
{241} normal block at 0x0057DF20, 8 bytes long.
Data: < > C0 D5 96 01 00 00 00 00
{240} normal block at 0x0057DEE8, 8 bytes long.
Data: <h > 68 D5 96 01 00 00 00 00
{239} normal block at 0x0057DEB0, 8 bytes long.
Data: <L > 4C D5 96 01 00 00 00 00
{238} normal block at 0x0057DE78, 8 bytes long.
Data: <0 > 30 D5 96 01 00 00 00 00
{237} normal block at 0x0057DE40, 8 bytes long.
Data: < > 14 D5 96 01 00 00 00 00
{236} normal block at 0x0057DE08, 8 bytes long.
Data: < > F8 D4 96 01 00 00 00 00
{235} normal block at 0x0057DDD0, 8 bytes long.
Data: < > DC D4 96 01 00 00 00 00
{234} normal block at 0x0057DD98, 8 bytes long.
Data: < > C0 D4 96 01 00 00 00 00
{233} normal block at 0x00577B68, 32 bytes long.
Data: <%Y-%m-%d %H:%M:%> 25 59 2D 25 6D 2D 25 64 20 25 48 3A 25 4D 3A 25
{232} normal block at 0x0057DD60, 8 bytes long.
Data: < > A4 D4 96 01 00 00 00 00
{231} normal block at 0x00577B18, 32 bytes long.
Data: <%w %b %f %H:%M:%> 25 77 20 25 62 20 25 66 20 25 48 3A 25 4D 3A 25
{230} normal block at 0x0057DD28, 8 bytes long.
Data: <H > 48 D7 96 01 00 00 00 00
{228} normal block at 0x00577AC8, 32 bytes long.
Data: <%W, %e %b %y %H:> 25 57 2C 20 25 65 20 25 62 20 25 79 20 25 48 3A
{227} normal block at 0x0057DCF0, 8 bytes long.
Data: <d > 64 D7 96 01 00 00 00 00
{226} normal block at 0x00577A78, 32 bytes long.
Data: <%W, %e-%b-%y %H:> 25 57 2C 20 25 65 2D 25 62 2D 25 79 20 25 48 3A
{225} normal block at 0x0057DCB8, 8 bytes long.
Data: < > 88 D5 96 01 00 00 00 00
{224} normal block at 0x00577A28, 32 bytes long.
Data: <%w, %d %b %Y %H:> 25 77 2C 20 25 64 20 25 62 20 25 59 20 25 48 3A
{223} normal block at 0x0057DC80, 8 bytes long.
Data: < > 88 D4 96 01 00 00 00 00
{222} normal block at 0x005779D8, 32 bytes long.
Data: <%w, %e %b %Y %H:> 25 77 2C 20 25 65 20 25 62 20 25 59 20 25 48 3A
{221} normal block at 0x0057DC48, 8 bytes long.
Data: < > 10 D7 96 01 00 00 00 00
{220} normal block at 0x00577988, 32 bytes long.
Data: <%w, %e %b %y %H:> 25 77 2C 20 25 65 20 25 62 20 25 79 20 25 48 3A
{219} normal block at 0x0057DC10, 8 bytes long.
Data: < > 80 D7 96 01 00 00 00 00
{218} normal block at 0x00577938, 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
{217} normal block at 0x0057DA88, 8 bytes long.
Data: < > A4 D5 96 01 00 00 00 00
{216} normal block at 0x005778E8, 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
{215} normal block at 0x0057DA50, 8 bytes long.
Data: <, > 2C D7 96 01 00 00 00 00
{206} normal block at 0x0057DA18, 8 bytes long.
Data: <| > 7C D3 96 01 00 00 00 00
{205} normal block at 0x0057B030, 44 bytes long.
Data: <0 W 0 W 0 W > 30 B0 57 00 30 B0 57 00 30 B0 57 00 01 01 CD CD
{204} normal block at 0x0057D9E0, 8 bytes long.
Data: <T > 54 D2 96 01 00 00 00 00
{203} normal block at 0x0057D9A8, 8 bytes long.
Data: < > A8 D2 96 01 00 00 00 00
{202} normal block at 0x0057D970, 8 bytes long.
Data: <p > 70 D2 96 01 00 00 00 00
{201} normal block at 0x0057D938, 8 bytes long.
Data: < > 8C D2 96 01 00 00 00 00
{200} normal block at 0x00577898, 32 bytes long.
Data: <# Log file creat> 23 20 4C 6F 67 20 66 69 6C 65 20 63 72 65 61 74
{199} normal block at 0x0057D900, 8 bytes long.
Data: <, > 2C D2 96 01 00 00 00 00
{198} normal block at 0x0057D8C8, 8 bytes long.
Data: < > B0 D1 96 01 00 00 00 00
{197} normal block at 0x0057D890, 8 bytes long.
Data: < > 94 D1 96 01 00 00 00 00
{196} normal block at 0x0057D858, 8 bytes long.
Data: <x > 78 D1 96 01 00 00 00 00
{195} normal block at 0x0057D820, 8 bytes long.
Data: <\ > 5C D1 96 01 00 00 00 00
{194} normal block at 0x0057D7E8, 8 bytes long.
Data: <@ > 40 D1 96 01 00 00 00 00
{193} normal block at 0x0057D7B0, 8 bytes long.
Data: <$ > 24 D1 96 01 00 00 00 00
{192} normal block at 0x0057D778, 8 bytes long.
Data: < > 08 D1 96 01 00 00 00 00
{191} normal block at 0x0057D740, 8 bytes long.
Data: < > EC D0 96 01 00 00 00 00
{190} normal block at 0x0057D708, 8 bytes long.
Data: < > D0 D0 96 01 00 00 00 00
{189} normal block at 0x0057D6D0, 8 bytes long.
Data: < > CC D1 96 01 00 00 00 00
{188} normal block at 0x0057D698, 8 bytes long.
Data: < > B4 D0 96 01 00 00 00 00
{187} normal block at 0x0057D660, 8 bytes long.
Data: <, > 2C D0 96 01 00 00 00 00
{186} normal block at 0x0057D628, 8 bytes long.
Data: < > EC CE 96 01 00 00 00 00
{184} normal block at 0x0057D5F0, 8 bytes long.
Data: < > 94 CF 96 01 00 00 00 00
{183} normal block at 0x0057D5B8, 8 bytes long.
Data: < > D0 CE 96 01 00 00 00 00
{182} normal block at 0x0057D580, 8 bytes long.
Data: <@ > 40 CF 96 01 00 00 00 00
{181} normal block at 0x0057D548, 8 bytes long.
Data: < > B0 CF 96 01 00 00 00 00
{180} normal block at 0x0057D510, 8 bytes long.
Data: < > 08 CF 96 01 00 00 00 00
{179} normal block at 0x0057D4D8, 8 bytes long.
Data: <$ > 24 CF 96 01 00 00 00 00
{178} normal block at 0x0057D4A0, 8 bytes long.
Data: <\ > 5C CF 96 01 00 00 00 00
{177} normal block at 0x0057D468, 8 bytes long.
Data: <x > 78 CF 96 01 00 00 00 00
{176} normal block at 0x0057D430, 8 bytes long.
Data: <| > 7C CE 96 01 00 00 00 00
{175} normal block at 0x0057D3F8, 8 bytes long.
Data: <D > 44 CE 96 01 00 00 00 00
{174} normal block at 0x0057D3C0, 8 bytes long.
Data: < > 98 CE 96 01 00 00 00 00
{173} normal block at 0x0057D388, 8 bytes long.
Data: <` > 60 CE 96 01 00 00 00 00
{172} normal block at 0x0057D350, 8 bytes long.
Data: < > F8 CD 96 01 00 00 00 00
{171} normal block at 0x00579890, 4 bytes long.
Data: <, > 2C B1 8B 01
{170} normal block at 0x0057D318, 8 bytes long.
Data: <h > 68 CC 96 01 00 00 00 00
{169} normal block at 0x0057D2E0, 8 bytes long.
Data: < > 88 CC 96 01 00 00 00 00
{168} normal block at 0x00574858, 8 bytes long.
Data: <0 > 30 CC 96 01 00 00 00 00
{167} normal block at 0x00574820, 8 bytes long.
Data: <L > 4C CC 96 01 00 00 00 00
Object dump complete.
程序“[10620] Dispenser.exe”已退出,返回值为 0 (0x0)。

请问std:string存在内存泄露的问题怎么解决?
源码\Poco\Foundation\src\DateTimeFormat.cpp有如下定义,看不出有问题呀!
namespace Poco {
const std::string DateTimeFormat::ISO8601_FORMAT("%Y-%m-%dT%H:%M:%S%z");
const std::string DateTimeFormat::ISO8601_FRAC_FORMAT("%Y-%m-%dT%H:%M:%s%z");
const std::string DateTimeFormat::RFC822_FORMAT("%w, %e %b %y %H:%M:%S %Z");
const std::string DateTimeFormat::RFC1123_FORMAT("%w, %e %b %Y %H:%M:%S %Z");
const std::string DateTimeFormat::HTTP_FORMAT("%w, %d %b %Y %H:%M:%S %Z");
const std::string DateTimeFormat::RFC850_FORMAT("%W, %e-%b-%y %H:%M:%S %Z");
const std::string DateTimeFormat::RFC1036_FORMAT("%W, %e %b %y %H:%M:%S %Z");
const std::string DateTimeFormat::ASCTIME_FORMAT("%w %b %f %H:%M:%S %Y");
const std::string DateTimeFormat::SORTABLE_FORMAT("%Y-%m-%d %H:%M:%S");
...全文
410 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
利白 2019-05-29
  • 打赏
  • 举报
回复
更详细的介绍,请访问我的博客: https://blog.csdn.net/libaineu2004/article/details/90608002
利白 2019-05-29
  • 打赏
  • 举报
回复
我自己找到答案了。我是在MFC使用POCO库的,解决的结论是: Build poco with MFC Extension DLLs projects, not the windows DLL, then it can used with VC++/MFC 参考https://github.com/pocoproject/poco/issues/2237
赵4老师 2019-05-28
  • 打赏
  • 举报
回复
改用char[]

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧