abort()无限期地悬挂着

时间:2014-03-10 04:01:36

标签: c++ g++

代码(我的原始代码使用assert,但这更短sscce

#include <cstdlib>

int main() {
    abort();
    return 0;
}

编译器版本:

$ g++ --version
g++ (GCC) 4.8.0
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

编译:

$ g++ test.cpp -o test

运行时:

$ ./test

无限期挂起。检查top我注意到abrt-hook-ccpp(以root为单位)占用整个CPU(固定为75%,。/ test占25%)。

其他注意事项:此行为似乎很脆弱,仅在大约80%的时间内发生。我尝试了每个优化级别(O0到O4)并且没有差异。

此外,我无法在本地计算机上重现此行为(g ++ 4.8.1)

1 个答案:

答案 0 :(得分:3)

这可能是Redhat自动错误报告工具中的一个错误。尝试禁用ABRT服务,看看它是否有效。

您可以禁用abrt-ccpp:

# chkconfig abrt-ccpp off
# service abrt-ccpp stop

或整个服务:

# chkconfig abrtd off
# service abrtd stop