【发布时间】:2014-11-06 13:19:45
【问题描述】:
我有以下代码:
std::ofstream stat("/opt/lic_status");
if ( stat.is_open() )
{
stat << ver;
stat.close();
}
我的问题是在第一行执行被阻止。在此块期间,看门狗生成了一个核心转储,它看起来像这样:
(gdb) bt
#0 0x00cb5430 in __kernel_vsyscall ()
#1 0x00b2833b in open () from /lib/libc.so.6
#2 0x00ac37c8 in _IO_new_file_fopen () from /lib/libc.so.6
#3 0x00ab73dd in __fopen_internal () from /lib/libc.so.6
#4 0x00ab9c4c in fopen64 () from /lib/libc.so.6
#5 0x00d6e877 in std::__basic_file<char>::open(char const*, std::_Ios_Openmode, int) () from /usr/lib/libstdc++.so.6
#6 0x00d1d75e in std::basic_filebuf<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode) () from /usr/lib/libstdc++.so.6
#7 0x08b625b8 in open () at /usr/lib/gcc/i686-redhat-linux/4.4.4/../../../../include /c++/4.4.4/fstream:699
#8 basic_ofstream () at /usr/lib/gcc/i686-redhat-linux/4.4.4/../../../../include/c++/4.4.4/fstream:628
我需要提一下,当问题发生时,我不知道 /opt/lic_status 文件的状态是什么。我不知道它是被其他进程打开的,还是根本存在的。
任何人对可能导致这种情况的原因有什么建议吗? 我只有核心转储,我可以从中获取任何信息吗?
【问题讨论】:
-
你能重现这个问题吗?
-
我不这么认为。如果我能复制它,我能得到什么信息?