• 9287阅读
  • 7回复

QT是否存在严重的内存泄漏? [复制链接]

上一主题 下一主题
离线secondwang
 
只看楼主 倒序阅读 楼主  发表于: 2009-04-11
— 本帖被 XChinux 执行加亮操作(2009-04-18) —
今天在VC6下面做了个最简单的内存泄漏测试,代码如下:
int main(int argc, char* argv[])
{
      QApplication app(argc, argv);
        _CrtDumpMemoryLeaks( );
}
debug后,退出尽然发现严重的内存泄漏,不知道是什么原因导致的,这样如果动态生成QT对象是否也会存在内存泄漏,请教达人指点。
debug信息如下:
Detected memory leaks!
Dumping objects ->
{1130} normal block at 0x00AEB550, 32 bytes long.
Data: <                > 01 00 00 00 03 00 00 00 00 00 00 00 01 00 00 00
{1128} normal block at 0x00AEB5E0, 96 bytes long.
Data: <    &   &       > 02 00 00 00 26 00 00 00 26 00 00 00 F2 B5 AE 00
{1127} normal block at 0x00AEB670, 96 bytes long.
Data: <    &   &       > 02 00 00 00 26 00 00 00 26 00 00 00 82 B6 AE 00
{1126} normal block at 0x00AEB700, 54 bytes long.
Data: <                > 01 00 00 00 11 00 00 00 11 00 00 00 12 B7 AE 00
{1125} normal block at 0x00AEB770, 40 bytes long.
Data: <                > 01 00 00 00 05 00 00 00 00 00 00 00 04 00 00 00
{1124} normal block at 0x00AEB7D0, 40 bytes long.
Data: <                > 01 00 00 00 05 00 00 00 00 00 00 00 04 00 00 00
{1123} normal block at 0x00AEB830, 12 bytes long.
Data: <            > D0 20 AE 00 F0 B8 AE 00 F0 B8 AE 00
{1122} normal block at 0x00AEB870, 80 bytes long.
Data: <0=me          #g> 30 3D 6D 65 F0 B8 AE 00 DC FE 13 00 E8 C4 23 67
{1121} normal block at 0x00AEB8F0, 8 bytes long.
Data: < 8mep   > 8C 38 6D 65 70 B8 AE 00
{1120} normal block at 0x00AEB930, 4 bytes long.
Data: <x #g> 78 C3 23 67
{1119} normal block at 0x00AEB960, 4 bytes long.
Data: <x #g> 78 C3 23 67
{1072} normal block at 0x00AEB990, 12 bytes long.
Data: <            > D0 20 AE 00 B0 8B AE 00 B0 8B AE 00
{1071} normal block at 0x00AE8B40, 64 bytes long.
Data: <  oe          #g> 80 DC 6F 65 B0 8B AE 00 00 00 00 00 E8 C4 23 67
{1070} normal block at 0x00AE8BB0, 12 bytes long.
Data: <  oe@       > C8 DC 6F 65 40 8B AE 00 00 CD CD CD
{1041} normal block at 0x00AEB9D0, 8 bytes long.
Data: <        > 10 BF AE 00 F0 FF 13 00
{1040} normal block at 0x00AEBA10, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{1039} normal block at 0x00AEBAB0, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{1038} normal block at 0x00AEBB50, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF 7F 7F
{1037} normal block at 0x00AEBC90, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF 7F 7F
{1036} normal block at 0x00AEBD30, 112 bytes long.
Data: <                > 03 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{1035} normal block at 0x00AEBDD0, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{1034} normal block at 0x00AEBE70, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{1033} normal block at 0x00AEA030, 112 bytes long.
Data: <                > 03 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{1032} normal block at 0x00AEBBF0, 112 bytes long.
Data: <                > 03 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{1027} normal block at 0x00AEBF10, 216 bytes long.
Data: <                > 01 00 00 00 D0 BD AE 00 F0 BB AE 00 F0 82 AE 00
{1025} normal block at 0x00AEA0D0, 20 bytes long.
Data: <    B   P   P   > A0 A6 AE 00 42 92 C5 03 50 A6 AE 00 50 A2 AE 00
{1024} normal block at 0x00AEA650, 28 bytes long.
Data: <            `   > 01 00 00 00 08 00 00 00 08 00 00 00 60 A6 AE 00
{1023} normal block at 0x00AEA110, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF EC EC
{1022} normal block at 0x00AEA1B0, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF EC EC
{1021} normal block at 0x00AEA250, 216 bytes long.
Data: <        `       > 01 00 00 00 90 AC AE 00 60 A3 AE 00 F0 82 AE 00
{1020} normal block at 0x00AEA360, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF EC EC
{1019} normal block at 0x00AE8030, 20 bytes long.
Data: <    U<V 0       > A0 A6 AE 00 55 3C 56 00 30 90 AE 00 D0 AD AE 00
{1018} normal block at 0x00AEA400, 68 bytes long.
Data: <                > A0 A6 AE 00 A0 A6 AE 00 A0 A6 AE 00 A0 A6 AE 00
{1017} normal block at 0x00AEA6A0, 32 bytes long.
Data: <                > 00 00 00 00 00 A4 AE 00 01 00 00 00 02 00 00 00
{1016} normal block at 0x00AE9030, 25 bytes long.
Data: <            @   > 01 00 00 00 05 00 00 00 05 00 00 00 40 90 AE 00
{1015} normal block at 0x00AEA470, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF AC AC
{1014} normal block at 0x00AEA510, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{1013} normal block at 0x00AEA5B0, 112 bytes long.
Data: <              11> 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 31 31
{1011} normal block at 0x00AEA6F0, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{1010} normal block at 0x00AEA790, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{1009} normal block at 0x00AEA830, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{1008} normal block at 0x00AEA8D0, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{1007} normal block at 0x00AEA970, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF AC AC
{1006} normal block at 0x00AEAA10, 112 bytes long.
Data: <              11> 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 31 31
{1005} normal block at 0x00AEAAB0, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF AC AC
{1004} normal block at 0x00AEAB50, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF AC AC
{1003} normal block at 0x00AEABF0, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{1002} normal block at 0x00AEAC90, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{1001} normal block at 0x00AEAD30, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{1000} normal block at 0x00AEADD0, 216 bytes long.
Data: <                > 01 00 00 00 90 AC AE 00 E0 AE AE 00 F0 82 AE 00
{999} normal block at 0x00AEAEE0, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{998} normal block at 0x00AE93A0, 112 bytes long.
Data: <                > 03 00 00 00 01 00 00 00 01 00 00 00 FF FF EC EC
{997} normal block at 0x00AE9300, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{996} normal block at 0x00AEAF80, 112 bytes long.
Data: <              11> 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 31 31
{995} normal block at 0x00AE9080, 112 bytes long.
Data: <              vv> 03 00 00 00 01 00 00 00 01 00 00 00 FF FF 76 76
{994} normal block at 0x00AE9120, 112 bytes long.
Data: <              vv> 01 00 00 00 01 00 00 00 01 00 00 00 FF FF 76 76
{993} normal block at 0x00AE91C0, 112 bytes long.
Data: <              vv> 01 00 00 00 01 00 00 00 01 00 00 00 FF FF 76 76
{992} normal block at 0x00AE9260, 112 bytes long.
Data: <                > 04 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{989} normal block at 0x00AE9440, 112 bytes long.
Data: <                > 04 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{988} normal block at 0x00AE94E0, 112 bytes long.
Data: <                > 04 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{987} normal block at 0x00AE9580, 112 bytes long.
Data: <                > 04 00 00 00 01 00 00 00 01 00 00 00 FF FF F5 F5
{986} normal block at 0x00AE9620, 112 bytes long.
Data: <                > 04 00 00 00 01 00 00 00 01 00 00 00 FF FF F5 F5
{985} normal block at 0x00AE96C0, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{984} normal block at 0x00AE9760, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF EC EC
{983} normal block at 0x00AE9800, 112 bytes long.
Data: <                > 04 00 00 00 01 00 00 00 01 00 00 00 FF FF AC AC
{982} normal block at 0x00AE98A0, 112 bytes long.
Data: <                > 04 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{981} normal block at 0x00AE9940, 112 bytes long.
Data: <                > 03 00 00 00 01 00 00 00 01 00 00 00 FF FF EC EC
{980} normal block at 0x00AE99E0, 112 bytes long.
Data: <                > 01 00 00 00 01 00 00 00 01 00 00 00 FF FF EC EC
{979} normal block at 0x00AE9A80, 112 bytes long.
Data: <                > 08 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{978} normal block at 0x00AE9B20, 112 bytes long.
Data: <                > 08 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{977} normal block at 0x00AE9BC0, 112 bytes long.
Data: <                > 04 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{976} normal block at 0x00AE9C60, 112 bytes long.
Data: <              11> 04 00 00 00 01 00 00 00 01 00 00 00 FF FF 31 31
{975} normal block at 0x00AE9D00, 112 bytes long.
Data: <              qq> 08 00 00 00 01 00 00 00 01 00 00 00 FF FF 71 71
{974} normal block at 0x00AE9DA0, 112 bytes long.
Data: <                > 08 00 00 00 01 00 00 00 01 00 00 00 FF FF F1 F1
{973} normal block at 0x00AE9E40, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{972} normal block at 0x00AE9EE0, 112 bytes long.
Data: <                > 06 00 00 00 01 00 00 00 01 00 00 00 FF FF EC EC
{971} normal block at 0x00AE9F80, 112 bytes long.
Data: <                > 08 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{970} normal block at 0x00AE8070, 112 bytes long.
Data: <                > 0B 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{969} normal block at 0x00AE8110, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{968} normal block at 0x00AE81B0, 112 bytes long.
Data: <                > 0C 00 00 00 01 00 00 00 01 00 00 00 FF FF F2 9D
{967} normal block at 0x00AE8250, 112 bytes long.
Data: <                > 08 00 00 00 01 00 00 00 01 00 00 00 FF FF AC AC
{966} normal block at 0x00AE82F0, 112 bytes long.
Data: <                > 08 00 00 00 01 00 00 00 01 00 00 00 FF FF FF FF
{965} normal block at 0x00AE8390, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF EC EC
{964} normal block at 0x00AE8430, 216 bytes long.
Data: <    @           > 02 00 00 00 40 85 AE 00 90 83 AE 00 F0 82 AE 00
{963} normal block at 0x00AE8540, 112 bytes long.
Data: <                > 02 00 00 00 01 00 00 00 01 00 00 00 FF FF 00 00
{962} normal block at 0x00AE85E0, 20 bytes long.
Data: <                > 90 8A AE 00 E5 93 95 08 20 86 AE 00 F0 8B AE 00
{961} normal block at 0x00AE8620, 36 bytes long.
Data: <            0   > 01 00 00 00 10 00 00 00 10 00 00 00 30 86 AE 00
{960} normal block at 0x00AE8670, 20 bytes long.
Data: <    b           > 90 8A AE 00 62 09 C4 01 B0 86 AE 00 B0 8C AE 00
{959} normal block at 0x00AE86B0, 38 bytes long.
Data: <                > 01 00 00 00 12 00 00 00 12 00 00 00 C0 86 AE 00
{958} normal block at 0x00AE8710, 20 bytes long.
Data: <        P       > 90 8A AE 00 E2 09 B8 00 50 87 AE 00 B0 8C AE 00
{957} normal block at 0x00AE8750, 30 bytes long.
Data: <            `   > 01 00 00 00 0A 00 00 00 0A 00 00 00 60 87 AE 00
{956} normal block at 0x00AE87A0, 20 bytes long.
Data: <            p   > 90 8A AE 00 C2 AD B6 08 E0 87 AE 00 70 8D AE 00
{955} normal block at 0x00AE87E0, 30 bytes long.
Data: <                > 01 00 00 00 0A 00 00 00 0A 00 00 00 F0 87 AE 00
{954} normal block at 0x00AE8830, 20 bytes long.
Data: <      R p   p   > 90 8A AE 00 DC D5 52 00 70 88 AE 00 70 8D AE 00
{953} normal block at 0x00AE8870, 29 bytes long.
Data: <                > 01 00 00 00 09 00 00 00 09 00 00 00 80 88 AE 00
{952} normal block at 0x00AE88C0, 20 bytes long.
Data: <    (       0   > E0 85 AE 00 28 E0 D1 09 00 89 AE 00 30 8E AE 00
{951} normal block at 0x00AE8900, 31 bytes long.
Data: <                > 01 00 00 00 0B 00 00 00 0B 00 00 00 10 89 AE 00
{950} normal block at 0x00AE8950, 20 bytes long.
Data: <    B           > 90 8A AE 00 42 92 C5 03 90 89 AE 00 A0 8E AE 00
{949} normal block at 0x00AE8990, 28 bytes long.
Data: <                > 01 00 00 00 08 00 00 00 08 00 00 00 A0 89 AE 00
{948} normal block at 0x00AE89E0, 20 bytes long.
Data: <    U<V         > 90 8A AE 00 55 3C 56 00 E0 8A AE 00 A0 8E AE 00
{947} normal block at 0x00AE8A20, 68 bytes long.
Data: <                > 90 8A AE 00 90 8A AE 00 90 8A AE 00 90 8A AE 00
{946} normal block at 0x00AE8A90, 32 bytes long.
Data: <                > 00 00 00 00 20 8A AE 00 01 00 00 00 08 00 00 00
{945} normal block at 0x00AE8AE0, 25 bytes long.
Data: <                > 01 00 00 00 05 00 00 00 05 00 00 00 F0 8A AE 00
{942} normal block at 0x00AE8BF0, 64 bytes long.
Data: <        `       > 01 00 00 00 CD CD CD CD 60 8C AE 00 CD CD CD CD
{941} normal block at 0x00AE8C60, 24 bytes long.
Data: <            r   > 01 00 00 00 02 00 00 00 02 00 00 00 72 8C AE 00
{940} normal block at 0x00AE8CB0, 64 bytes long.
Data: <                > 02 00 00 00 CD CD CD CD 20 8D AE 00 CD CD CD CD
{939} normal block at 0x00AE8D20, 24 bytes long.
Data: <            2   > 01 00 00 00 02 00 00 00 02 00 00 00 32 8D AE 00
{938} normal block at 0x00AE8D70, 64 bytes long.
Data: <                > 02 00 00 00 CD CD CD CD E0 8D AE 00 CD CD CD CD
{937} normal block at 0x00AE8DE0, 24 bytes long.
Data: <                > 01 00 00 00 02 00 00 00 02 00 00 00 F2 8D AE 00
{936} normal block at 0x00AE8E30, 64 bytes long.
Data: <                > 01 00 00 00 CD CD CD CD 80 8F AE 00 CD CD CD CD
{935} normal block at 0x00AE8F80, 24 bytes long.
Data: <                > 01 00 00 00 02 00 00 00 02 00 00 00 92 8F AE 00
{934} normal block at 0x00AE8EA0, 64 bytes long.
Data: <                > 02 00 00 00 CD CD CD CD D0 8F AE 00 CD CD CD CD
{933} normal block at 0x00AE8FD0, 24 bytes long.
Data: <                > 01 00 00 00 02 00 00 00 02 00 00 00 E2 8F AE 00
{932} normal block at 0x00AE8F10, 4 bytes long.
Data: <    > A0 A6 AE 00
{931} normal block at 0x00AE8F40, 8 bytes long.
Data: <0       > 30 84 AE 00 F0 FF 13 00
{881} normal block at 0x00AE5D80, 8 bytes long.
Data: <0       > 30 84 AE 00 F0 FF 13 00
{870} normal block at 0x00AE5620, 112 bytes long.
Data: <                > 08 00 00 00 01 00 00 00 01 00 00 00 FF FF E9 E9
{860} normal block at 0x00AE4170, 112 bytes long.
Data: <                > 01 00 00 00 00 00 00 00 01 00 00 00 FF FF 00 00
{858} normal block at 0x00AE5BC0, 12 bytes long.
Data: <     \   \  > D0 20 AE 00 E0 5C AE 00 E0 5C AE 00
{857} normal block at 0x00AE5C00, 176 bytes long.
Data: < one \        #g> D8 6F 6E 65 E0 5C AE 00 DC FE 13 00 E8 C4 23 67
{856} normal block at 0x00AE5CE0, 12 bytes long.
Data: < 9me \      > A4 39 6D 65 00 5C AE 00 CD CD CD CD
{855} normal block at 0x00AE5D20, 40 bytes long.
Data: <            2]  > 01 00 00 00 0A 00 00 00 07 00 00 00 32 5D AE 00
{841} normal block at 0x00AE4120, 4 bytes long.
Data: <  #g> E8 C4 23 67
{728} normal block at 0x00AE5F70, 59 bytes long.
Data: <    '   '    _  > 01 00 00 00 27 00 00 00 27 00 00 00 80 5F AE 00
{727} normal block at 0x00AE5FE0, 12 bytes long.
Data: <     B   B  > D0 20 AE 00 E0 42 AE 00 E0 42 AE 00
{726} normal block at 0x00AE4040, 20 bytes long.
Data: <                > 00 CD CD CD 00 00 00 00 00 00 00 00 00 00 00 00
{725} normal block at 0x00AE4080, 80 bytes long.
Data: < | g B        #g> E8 7C 1D 67 E0 42 AE 00 00 00 00 00 E8 C4 23 67
{723} normal block at 0x00AE42E0, 8 bytes long.
Data: <  me @  > 10 85 6D 65 80 40 AE 00
{720} normal block at 0x00AE4320, 8 bytes long.
离线lonko
只看该作者 1楼 发表于: 2009-04-12
随便做一个菜单,然后打开菜单,关闭,打开,关闭,就可以看见以数十K的速度增加
离线secondwang
只看该作者 2楼 发表于: 2009-04-13
这样搞,那QT还能用吗?
离线exile
只看该作者 3楼 发表于: 2009-04-13
一般自已管理内存的库,用VC 的crtdbg都会检查出内存泄露,比如Qt, stlport, ptmalloc这些著名的库,但这并不是真的内存泄露,只是为了进行内存优化而设计的。
离线ziding

只看该作者 4楼 发表于: 2009-04-17
int main(int argc, char* argv[])
{
  {
    QApplication app(argc, argv);
}
        _CrtDumpMemoryLeaks( );
}
这样试试
刚开始学习QT,希望各位高手不吝赐教,谢谢~
离线secondwang
只看该作者 5楼 发表于: 2009-04-18
那样试过了
离线secondwang
只看该作者 6楼 发表于: 2009-04-18
我最开始也因为app的析构会释放掉资源,还是有这样的错误
离线蛮蛮
只看该作者 7楼 发表于: 2009-04-21
关注下,看看高手们的解释。
我听到的是如果构造时用parent的都不用自己释放。
蛮蛮工作室
快速回复
限100 字节
 
上一个 下一个