python-如何抑制错误消息:“ ./ hubbard.exc中的错误:大小与prev_size损坏”?
作者:互联网
这个问题已经在这里有了答案: > glibc backtrace – can’t redirect output to file 2个
我有一个非常老的程序(从80年代末开始),用C语言编写,我设法以某种方式使其在Ubuntu 16.04 64Bit上运行.即使最后产生错误,结果也可以.由于现在似乎无法编译该程序(它使用了NAG专有库的非常旧的版本),因此我无法在源代码中解决该问题,而不得不忍受该错误.我需要循环运行此程序,并且错误消息完全使我的屏幕混乱,并阻止我看到相关消息.我试图通过使用诸如./hubbard.exc 2> / dev / null之类的调用以及诸如&> / dev / null之类的变体来抑制该消息,但该错误消息仍显示在屏幕上.因此,我得出结论,该错误消息既未打印到stdout,也没有打印到stderr.
我将非常感谢您提供任何帮助来消除此错误消息,或者为您提供有关如何禁止该外壳程序所有输出的建议!
如果无法在外壳中消除此错误消息,这也将帮助我找到一种从Python3脚本(使用子进程或os.system)运行程序的方法,而不会在屏幕上显示错误.
我正在谈论的错误消息如下所示:
*** Error in `./hubbard.exc': corrupted size vs. prev_size: 0x0a350a98 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x67377)[0xf7d5e377]
/lib/i386-linux-gnu/libc.so.6(+0x6d2f7)[0xf7d642f7]
/lib/i386-linux-gnu/libc.so.6(+0x6e48a)[0xf7d6548a]
./libstdc++-libc6.2-2.so.3(__builtin_vec_delete+0x24)[0xf7f5ea44]
./hubbard.exc[0x80b4ad4]
./hubbard.exc[0x808e141]
./hubbard.exc[0x805352d]
./hubbard.exc[0x805257f]
./hubbard.exc[0x80527c5]
./hubbard.exc(fwrite+0xc7)[0x8049623]
./hubbard.exc[0x80b7779]
/lib/ld-linux.so.2(+0xfa87)[0xf7f89a87]
/lib/i386-linux-gnu/libc.so.6(+0x2e993)[0xf7d25993]
======= Memory map: ========
08048000-080bd000 r-xp 00000000 08:16 15208152 /mnt/data/Downloads/Ausfuehrbar/hubbard.exc
080bd000-080cb000 rwxp 00074000 08:16 15208152 /mnt/data/Downloads/Ausfuehrbar/hubbard.exc
080cb000-080cf000 rwxp 00000000 00:00 0
098ee000-0a51e000 rwxp 00000000 00:00 0 [heap]
f7b00000-f7b21000 rwxp 00000000 00:00 0
f7b21000-f7c00000 ---p 00000000 00:00 0
f7cf6000-f7cf7000 rwxp 00000000 00:00 0
f7cf7000-f7ea7000 r-xp 00000000 08:02 917535 /lib/i386-linux-gnu/libc-2.23.so
f7ea7000-f7ea9000 r-xp 001af000 08:02 917535 /lib/i386-linux-gnu/libc-2.23.so
f7ea9000-f7eaa000 rwxp 001b1000 08:02 917535 /lib/i386-linux-gnu/libc-2.23.so
f7eaa000-f7ead000 rwxp 00000000 00:00 0
f7ead000-f7f00000 r-xp 00000000 08:02 917512 /lib/i386-linux-gnu/libm-2.23.so
f7f00000-f7f01000 r-xp 00052000 08:02 917512 /lib/i386-linux-gnu/libm-2.23.so
f7f01000-f7f02000 rwxp 00053000 08:02 917512 /lib/i386-linux-gnu/libm-2.23.so
f7f0d000-f7f29000 r-xp 00000000 08:02 917507 /lib/i386-linux-gnu/libgcc_s.so.1
f7f29000-f7f2a000 rwxp 0001b000 08:02 917507 /lib/i386-linux-gnu/libgcc_s.so.1
f7f2a000-f7f2b000 rwxp 00000000 00:00 0
f7f2b000-f7f61000 r-xp 00000000 08:16 15208227 /mnt/data/Downloads/Ausfuehrbar/libstdc++-libc6.2-2.so.3
f7f61000-f7f72000 rwxp 00036000 08:16 15208227 /mnt/data/Downloads/Ausfuehrbar/libstdc++-libc6.2-2.so.3
f7f72000-f7f75000 rwxp 00000000 00:00 0
f7f75000-f7f78000 r--p 00000000 00:00 0 [vvar]
f7f78000-f7f7a000 r-xp 00000000 00:00 0 [vdso]
f7f7a000-f7f9d000 r-xp 00000000 08:02 917518 /lib/i386-linux-gnu/ld-2.23.so
f7f9d000-f7f9e000 r-xp 00022000 08:02 917518 /lib/i386-linux-gnu/ld-2.23.so
f7f9e000-f7f9f000 rwxp 00023000 08:02 917518 /lib/i386-linux-gnu/ld-2.23.so
ff8f5000-ff916000 rwxp 00000000 00:00 0 [stack]
解决方法:
您可以使用export LIBC_FATAL_STDERR_ = 1将此回溯信息转到stderr,然后使用2> / dev / null删除该错误消息,例如
$LIBC_FATAL_STDERR_=1 ./hubbard.exc 2>/dev/null
,有关更多详细信息,请参见glibc backtrace – can’t redirect output to file.
标签:error-suppression,bash,ubuntu,python 来源: https://codeday.me/bug/20191108/2010060.html