Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash中的重定向内存泄漏错误消息_Bash_Memory Leaks_Dev Null - Fatal编程技术网

bash中的重定向内存泄漏错误消息

bash中的重定向内存泄漏错误消息,bash,memory-leaks,dev-null,Bash,Memory Leaks,Dev Null,我使用espeak和mbrola在一个小的tea计时器脚本中: timer() { sleep $1 && espeak -v mb-en1 -a 200 "Alert, alert, alert, $2" &> /dev/null; } 不幸的是,mbrola中似乎存在内存泄漏;但这并没有阻止它工作 $ espeak -v mb-en1 -a 200 "test" &> /dev/null *** Error in `mbrola': fre

我使用
espeak
mbrola
在一个小的tea计时器脚本中:

timer()
{ sleep $1 && espeak -v mb-en1 -a 200  "Alert, alert, alert, $2" &> /dev/null; }
不幸的是,mbrola中似乎存在内存泄漏;但这并没有阻止它工作

$ espeak -v mb-en1 -a 200  "test" &> /dev/null 
*** Error in `mbrola': free(): invalid pointer: 0x09640180 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x6737a)[0xf753637a]
/lib/i386-linux-gnu/libc.so.6(+0x6dfb7)[0xf753cfb7]
/lib/i386-linux-gnu/libc.so.6(+0x6e776)[0xf753d776]
/lib/i386-linux-gnu/libc.so.6(_IO_wsetb+0x59)[0xf7530d79]
/lib/i386-linux-gnu/libc.so.6(+0x6c6fc)[0xf753b6fc]
/lib/i386-linux-gnu/libc.so.6(+0x2e742)[0xf74fd742]
/lib/i386-linux-gnu/libc.so.6(+0x2e801)[0xf74fd801]
mbrola(free+0x60)[0x8048c0c]
======= Memory map: ========
08048000-08050000 r-xp 00000000 fe:01 2883715                            /usr/bin/mbrola
08050000-08051000 rwxp 00007000 fe:01 2883715                            /usr/bin/mbrola
095ff000-09641000 rwxp 00000000 00:00 0                                  [heap]
f7300000-f7321000 rwxp 00000000 00:00 0 
f7321000-f7400000 ---p 00000000 00:00 0 
f74af000-f74cb000 r-xp 00000000 fe:01 11534736                           /lib/i386-linux-gnu/libgcc_s.so.1
f74cb000-f74cc000 r-xp 0001b000 fe:01 11534736                           /lib/i386-linux-gnu/libgcc_s.so.1
f74cc000-f74cd000 rwxp 0001c000 fe:01 11534736                           /lib/i386-linux-gnu/libgcc_s.so.1
f74cd000-f74cf000 rwxp 00000000 00:00 0 
f74cf000-f7680000 r-xp 00000000 fe:01 11534349                           /lib/i386-linux-gnu/libc-2.24.so
f7680000-f7682000 r-xp 001b0000 fe:01 11534349                           /lib/i386-linux-gnu/libc-2.24.so
f7682000-f7683000 rwxp 001b2000 fe:01 11534349                           /lib/i386-linux-gnu/libc-2.24.so
f7683000-f7686000 rwxp 00000000 00:00 0 
f7686000-f76d9000 r-xp 00000000 fe:01 11534358                           /lib/i386-linux-gnu/libm-2.24.so
f76d9000-f76da000 r-xp 00052000 fe:01 11534358                           /lib/i386-linux-gnu/libm-2.24.so
f76da000-f76db000 rwxp 00053000 fe:01 11534358                           /lib/i386-linux-gnu/libm-2.24.so
f76fd000-f7700000 rwxp 00000000 00:00 0 
f7700000-f7702000 r--p 00000000 00:00 0                                  [vvar]
f7702000-f7704000 r-xp 00000000 00:00 0                                  [vdso]
f7704000-f7726000 r-xp 00000000 fe:01 11534341                           /lib/i386-linux-gnu/ld-2.24.so
f7726000-f7727000 rwxp 00000000 00:00 0 
f7727000-f7728000 r-xp 00022000 fe:01 11534341                           /lib/i386-linux-gnu/ld-2.24.so
f7728000-f7729000 rwxp 00023000 fe:01 11534341                           /lib/i386-linux-gnu/ld-2.24.so
ffe64000-ffe85000 rwxp 00000000 00:00 0                                  [stack]
^C
*** Error in `mbrola': free(): invalid pointer: 0x081632a8 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x6737a)[0xf756737a]
/lib/i386-linux-gnu/libc.so.6(+0x6dfb7)[0xf756dfb7]
/lib/i386-linux-gnu/libc.so.6(+0x6e776)[0xf756e776]
/lib/i386-linux-gnu/libc.so.6(_IO_wsetb+0x59)[0xf7561d79]
/lib/i386-linux-gnu/libc.so.6(+0x6c6fc)[0xf756c6fc]
/lib/i386-linux-gnu/libc.so.6(+0x2e742)[0xf752e742]
/lib/i386-linux-gnu/libc.so.6(+0x2e801)[0xf752e801]
mbrola(free+0x60)[0x8048c0c]
======= Memory map: ========
08048000-08050000 r-xp 00000000 fe:01 2883715                            /usr/bin/mbrola
08050000-08051000 rwxp 00007000 fe:01 2883715                            /usr/bin/mbrola
08122000-08164000 rwxp 00000000 00:00 0                                  [heap]
f7300000-f7321000 rwxp 00000000 00:00 0 
f7321000-f7400000 ---p 00000000 00:00 0 
f74e0000-f74fc000 r-xp 00000000 fe:01 11534736                           /lib/i386-linux-gnu/libgcc_s.so.1
f74fc000-f74fd000 r-xp 0001b000 fe:01 11534736                           /lib/i386-linux-gnu/libgcc_s.so.1
f74fd000-f74fe000 rwxp 0001c000 fe:01 11534736                           /lib/i386-linux-gnu/libgcc_s.so.1
f74fe000-f7500000 rwxp 00000000 00:00 0 
f7500000-f76b1000 r-xp 00000000 fe:01 11534349                           /lib/i386-linux-gnu/libc-2.24.so
f76b1000-f76b3000 r-xp 001b0000 fe:01 11534349                           /lib/i386-linux-gnu/libc-2.24.so
f76b3000-f76b4000 rwxp 001b2000 fe:01 11534349                           /lib/i386-linux-gnu/libc-2.24.so
f76b4000-f76b7000 rwxp 00000000 00:00 0 
f76b7000-f770a000 r-xp 00000000 fe:01 11534358                           /lib/i386-linux-gnu/libm-2.24.so
f770a000-f770b000 r-xp 00052000 fe:01 11534358                           /lib/i386-linux-gnu/libm-2.24.so
f770b000-f770c000 rwxp 00053000 fe:01 11534358                           /lib/i386-linux-gnu/libm-2.24.so
f772e000-f7731000 rwxp 00000000 00:00 0 
f7731000-f7733000 r--p 00000000 00:00 0                                  [vvar]
f7733000-f7735000 r-xp 00000000 00:00 0                                  [vdso]
f7735000-f7757000 r-xp 00000000 fe:01 11534341                           /lib/i386-linux-gnu/ld-2.24.so
f7757000-f7758000 rwxp 00000000 00:00 0 
f7758000-f7759000 r-xp 00022000 fe:01 11534341                           /lib/i386-linux-gnu/ld-2.24.so
f7759000-f775a000 rwxp 00023000 fe:01 11534341                           /lib/i386-linux-gnu/ld-2.24.so
ffac0000-ffae1000 rwxp 00000000 00:00 0   
正如您所看到的,虽然我想在
/dev/null
中接收
stdout
&
stderr
,但我在终端上输出了这个丑陋的错误消息


如何正确丢弃内存泄漏信息

尝试将环境变量
MALLOC\u CHECK\u
设置为零


您是否研究过是否可以安装更新的版本?如果其他用户也有类似的问题,那么我希望espeak/mbrola开发团队会欢迎这样一个可重复出现的bug。寻找一个支持/开发论坛,读一读,如果他们似乎不知道,在这里发布一个链接到你的Q。i、 e.解决问题,不要隐瞒;-)(IMHO)。最后一个想法,您是否尝试过长期版本的重定向(
/dev/null 2>&1
?)祝您好运!我不想追查那个内存泄漏;)我只想抑制错误消息,并希望得到一个解释,为什么它不能在stderr上输出。(长版本也不起作用)在bash cmd行上运行基本cmds时是否会出现相同的错误?祝您好运。您似乎正在使用调试版本的
espeak
;内存泄漏信息不应转储到生产版本中。我正在使用最新的Debian测试包1.48.04+dfsg-5