一个奇怪的内存泄露的问题

时间:2022-05-29 18:15:25
我的一个语音采集的程序,原来是好好的,但是最近发现程序在结束的时候有内存泄露的问题
但是在以前没有,而且现在运行以前的版本也发现有内存泄露的问题,但是在以前却没有。
这个程序就是采集语音,然后发送出去的程序,有谁遇到过类似的问题,请告知原因或者是解决方法。

15 个解决方案

#1


是很奇怪啊,程序不会变质。

应该是你系统或开发环境的问题,换台机子试一下你现在和以前的版本。

#2


同样的版本,在这就泄露,在别处就不泄露?

#3


可能這幾天颱風來了,有些地方吹破了...........

#4


原来正常,
现在不正常 ?

使用环境都没有变化么?

#5


或者程序缺少了什么部分?

#6


你看是不是操作系统的问题,
或者说操作系统受了什么感染,安装了什么软件,或者安装了什么补丁

#7


用VLD,可以得到泄漏时的调用堆栈.
http://www.codeproject.com/tools/visualleakdetector.asp

#8


非常感谢大家的帮助,
现在用原来的版本发现也有内存泄漏的问题,但是在原来很早的时候就没有发现,如果原来就有,则在DEBUG下就能发现了,
前几天,机器感染了一些木马和病毒,但是现在都给杀掉了。
而且现在也安装了系统提供的补丁。
另外在别的机器上测试过也有同样的问题。但是在一年以前,在和原来同事的转交给我的时候也没有,今年到8月份的时候也没有。
郁闷中。。
希望大家能公共帮助我解决这个奇怪的问题。

#9


有可能系统上其它应用影响
以前遇到过金山毒霸时我的程序有内存泄漏,约3秒增加4K,停止毒霸后就没问题了。
很多木马、病毒、还有杀病毒、防火墙都会注入别的进程进行跟踪,所以可能会遇到问题。

#10


to VLD, :
 我使用了VLD,但是报告的错误是这个,也没有能够找到堆栈,
 WARNING: Visual Leak Detector detected memory leaks!
---------- Block 3497 at 0x0120B820: 480 bytes ----------
  Call Stack:
    0x00472E7A (File and line number not available): (Function name unavailable)
    0x0046C54B (File and line number not available): (Function name unavailable)
    0x0046C9CD (File and line number not available): (Function name unavailable)
    0x7C80B683 (File and line number not available): GetModuleFileNameA
  Data:
    9C FF B1 FF    D9 FF F9 FF    22 00 39 00    42 00 4C 00     ........ ".9.B.L.
    41 00 07 00    DD FF A8 FF    78 FF AE FF    11 00 33 00     A....... x.....3.
    32 00 30 00    F4 FF CB FF    E9 FF E3 FF    C7 FF CE FF     2.0..... ........
    D4 FF EE FF    10 00 07 00    10 00 33 00    44 00 42 00     ........ ..3.D.B.
    38 00 08 00    DF FF DE FF    DF FF C6 FF    D0 FF 06 00     8....... ........
    15 00 00 00    14 00 1A 00    F6 FF C0 FF    92 FF 9E FF     ........ ........
    CA FF 01 00    42 00 76 00    77 00 58 00    35 00 EB FF     ....B.v. w.X.5...
    A5 FF 9E FF    B6 FF D2 FF    EA FF 1A 00    34 00 28 00     ........ ....4.(.
    33 00 2D 00    0D 00 02 00    0E 00 05 00    F8 FF E1 FF     3.-..... ........
    DA FF F7 FF    22 00 33 00    34 00 18 00    D3 FF AC FF     ....".3. 4.......
    B1 FF BC FF    C9 FF F2 FF    15 00 0D 00    FC FF F6 FF     ........ ........
    E5 FF E6 FF    0B 00 1E 00    22 00 1B 00    F6 FF D6 FF     ........ ".......
    DC FF ED FF    08 00 28 00    20 00 0B 00    FA FF E0 FF     ......(. ........
    D1 FF ED FF    06 00 F3 FF    E6 FF D8 FF    9A FF 90 FF     ........ ........
    DC FF 38 00    99 00 BA 00    81 00 22 00    C9 FF 86 FF     ..8..... ..".....
    8B FF D0 FF    E8 FF F1 FF    22 00 0A 00    C6 FF E0 FF     ........ ".......
    1C 00 1F 00    13 00 F4 FF    C7 FF B6 FF    C7 FF DD FF     ........ ........
    18 00 3B 00    12 00 F8 FF    03 00 F0 FF    D7 FF 03 00     ..;..... ........
    2E 00 29 00    38 00 4A 00    2B 00 11 00    E6 FF B7 FF     ..).8.J. +.......
    C8 FF 03 00    15 00 33 00    60 00 6A 00    4C 00 12 00     ......3. `.j.L...
    CE FF 9F FF    97 FF BD FF    EB FF 13 00    2D 00 0C 00     ........ ....-...
    C5 FF 93 FF    A1 FF EC FF    12 00 0C 00    0B 00 0A 00     ........ ........
    14 00 33 00    59 00 57 00    37 00 1E 00    06 00 EA FF     ..3.Y.W. 7.......
    D4 FF D5 FF    EC FF F5 FF    FC FF 1B 00    4C 00 52 00     ........ ....L.R.
    0F 00 D1 FF    BC FF BA FF    E0 FF 27 00    51 00 33 00     ........ ..'.Q.3.
    16 00 ED FF    AC FF 9C FF    C7 FF DE FF    EB FF 07 00     ........ ........
    01 00 EB FF    CE FF AC FF    CB FF 2A 00    54 00 53 00     ........ ..*.T.S.
    61 00 3C 00    F7 FF E2 FF    D3 FF B2 FF    BF FF F8 FF     a.<..... ........
    10 00 3D 00    5B 00 27 00    FD FF 00 00    EA FF D8 FF     ..=.[.'. ........
    09 00 44 00    61 00 6F 00    40 00 08 00    F0 FF C6 FF     ..D.a.o. @.......

---------- Block 3496 at 0x0120ABF0: 32 bytes ----------
  Call Stack:
    0x00472E7A (File and line number not available): (Function name unavailable)
    0x0046C4EA (File and line number not available): (Function name unavailable)
    0x0046C9CD (File and line number not available): (Function name unavailable)
    0x7C80B683 (File and line number not available): GetModuleFileNameA
  Data:
    20 B8 20 01    E0 01 00 00    E0 01 00 00    48 1C 4D 00     ........ ....H.M.
    03 00 00 00    00 00 00 00    00 00 00 00    60 23 1D 00     ........ ....`#..

Visual Leak Detector detected 2 memory leaks.
Visual Leak Detector is now exiting.

#11


不清楚,接分

#12


这种东西不通过调试,很难能发现的。

#13


也调试了,但是没有发现内存泄漏的原因,
根据泄漏的内存的大小,估计是在在采集完语音的时候,我是这样处理的
  首先分配一个语音缓存,然后开始录音,当这个语音缓存满的时候再分配一个新的缓存,这样循环就实现了语音的录取。然后把这个语音存入LIST中必备后用。

#14


没有代码是看不出你的问题的

#15


在代码中如果出现空指针赋值,有时候也会出现内存泄漏的错误
你怎么样判断那是内存泄漏?

#1


是很奇怪啊,程序不会变质。

应该是你系统或开发环境的问题,换台机子试一下你现在和以前的版本。

#2


同样的版本,在这就泄露,在别处就不泄露?

#3


可能這幾天颱風來了,有些地方吹破了...........

#4


原来正常,
现在不正常 ?

使用环境都没有变化么?

#5


或者程序缺少了什么部分?

#6


你看是不是操作系统的问题,
或者说操作系统受了什么感染,安装了什么软件,或者安装了什么补丁

#7


用VLD,可以得到泄漏时的调用堆栈.
http://www.codeproject.com/tools/visualleakdetector.asp

#8


非常感谢大家的帮助,
现在用原来的版本发现也有内存泄漏的问题,但是在原来很早的时候就没有发现,如果原来就有,则在DEBUG下就能发现了,
前几天,机器感染了一些木马和病毒,但是现在都给杀掉了。
而且现在也安装了系统提供的补丁。
另外在别的机器上测试过也有同样的问题。但是在一年以前,在和原来同事的转交给我的时候也没有,今年到8月份的时候也没有。
郁闷中。。
希望大家能公共帮助我解决这个奇怪的问题。

#9


有可能系统上其它应用影响
以前遇到过金山毒霸时我的程序有内存泄漏,约3秒增加4K,停止毒霸后就没问题了。
很多木马、病毒、还有杀病毒、防火墙都会注入别的进程进行跟踪,所以可能会遇到问题。

#10


to VLD, :
 我使用了VLD,但是报告的错误是这个,也没有能够找到堆栈,
 WARNING: Visual Leak Detector detected memory leaks!
---------- Block 3497 at 0x0120B820: 480 bytes ----------
  Call Stack:
    0x00472E7A (File and line number not available): (Function name unavailable)
    0x0046C54B (File and line number not available): (Function name unavailable)
    0x0046C9CD (File and line number not available): (Function name unavailable)
    0x7C80B683 (File and line number not available): GetModuleFileNameA
  Data:
    9C FF B1 FF    D9 FF F9 FF    22 00 39 00    42 00 4C 00     ........ ".9.B.L.
    41 00 07 00    DD FF A8 FF    78 FF AE FF    11 00 33 00     A....... x.....3.
    32 00 30 00    F4 FF CB FF    E9 FF E3 FF    C7 FF CE FF     2.0..... ........
    D4 FF EE FF    10 00 07 00    10 00 33 00    44 00 42 00     ........ ..3.D.B.
    38 00 08 00    DF FF DE FF    DF FF C6 FF    D0 FF 06 00     8....... ........
    15 00 00 00    14 00 1A 00    F6 FF C0 FF    92 FF 9E FF     ........ ........
    CA FF 01 00    42 00 76 00    77 00 58 00    35 00 EB FF     ....B.v. w.X.5...
    A5 FF 9E FF    B6 FF D2 FF    EA FF 1A 00    34 00 28 00     ........ ....4.(.
    33 00 2D 00    0D 00 02 00    0E 00 05 00    F8 FF E1 FF     3.-..... ........
    DA FF F7 FF    22 00 33 00    34 00 18 00    D3 FF AC FF     ....".3. 4.......
    B1 FF BC FF    C9 FF F2 FF    15 00 0D 00    FC FF F6 FF     ........ ........
    E5 FF E6 FF    0B 00 1E 00    22 00 1B 00    F6 FF D6 FF     ........ ".......
    DC FF ED FF    08 00 28 00    20 00 0B 00    FA FF E0 FF     ......(. ........
    D1 FF ED FF    06 00 F3 FF    E6 FF D8 FF    9A FF 90 FF     ........ ........
    DC FF 38 00    99 00 BA 00    81 00 22 00    C9 FF 86 FF     ..8..... ..".....
    8B FF D0 FF    E8 FF F1 FF    22 00 0A 00    C6 FF E0 FF     ........ ".......
    1C 00 1F 00    13 00 F4 FF    C7 FF B6 FF    C7 FF DD FF     ........ ........
    18 00 3B 00    12 00 F8 FF    03 00 F0 FF    D7 FF 03 00     ..;..... ........
    2E 00 29 00    38 00 4A 00    2B 00 11 00    E6 FF B7 FF     ..).8.J. +.......
    C8 FF 03 00    15 00 33 00    60 00 6A 00    4C 00 12 00     ......3. `.j.L...
    CE FF 9F FF    97 FF BD FF    EB FF 13 00    2D 00 0C 00     ........ ....-...
    C5 FF 93 FF    A1 FF EC FF    12 00 0C 00    0B 00 0A 00     ........ ........
    14 00 33 00    59 00 57 00    37 00 1E 00    06 00 EA FF     ..3.Y.W. 7.......
    D4 FF D5 FF    EC FF F5 FF    FC FF 1B 00    4C 00 52 00     ........ ....L.R.
    0F 00 D1 FF    BC FF BA FF    E0 FF 27 00    51 00 33 00     ........ ..'.Q.3.
    16 00 ED FF    AC FF 9C FF    C7 FF DE FF    EB FF 07 00     ........ ........
    01 00 EB FF    CE FF AC FF    CB FF 2A 00    54 00 53 00     ........ ..*.T.S.
    61 00 3C 00    F7 FF E2 FF    D3 FF B2 FF    BF FF F8 FF     a.<..... ........
    10 00 3D 00    5B 00 27 00    FD FF 00 00    EA FF D8 FF     ..=.[.'. ........
    09 00 44 00    61 00 6F 00    40 00 08 00    F0 FF C6 FF     ..D.a.o. @.......

---------- Block 3496 at 0x0120ABF0: 32 bytes ----------
  Call Stack:
    0x00472E7A (File and line number not available): (Function name unavailable)
    0x0046C4EA (File and line number not available): (Function name unavailable)
    0x0046C9CD (File and line number not available): (Function name unavailable)
    0x7C80B683 (File and line number not available): GetModuleFileNameA
  Data:
    20 B8 20 01    E0 01 00 00    E0 01 00 00    48 1C 4D 00     ........ ....H.M.
    03 00 00 00    00 00 00 00    00 00 00 00    60 23 1D 00     ........ ....`#..

Visual Leak Detector detected 2 memory leaks.
Visual Leak Detector is now exiting.

#11


不清楚,接分

#12


这种东西不通过调试,很难能发现的。

#13


也调试了,但是没有发现内存泄漏的原因,
根据泄漏的内存的大小,估计是在在采集完语音的时候,我是这样处理的
  首先分配一个语音缓存,然后开始录音,当这个语音缓存满的时候再分配一个新的缓存,这样循环就实现了语音的录取。然后把这个语音存入LIST中必备后用。

#14


没有代码是看不出你的问题的

#15


在代码中如果出现空指针赋值,有时候也会出现内存泄漏的错误
你怎么样判断那是内存泄漏?