1
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b8bc26 in std::basic_filebuf<char, std::char_traits<char> >::_M_terminate_output() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) where
#0  0x00007ffff7b8bc26 in std::basic_filebuf<char, std::char_traits<char>    >::_M_terminate_output() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#1  0x00007ffff7b8c6a2 in std::basic_filebuf<char, std::char_traits<char>>::close()       ()  from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2  0x00007ffff7b8cb2a in std::basic_ofstream<char, std::char_traits<char> >::~basic_ofstream() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x0000000000403e02 in main (argc=2, argv=0x7fffffffe1c8)
at main.cpp:630

プログラムの実行後、「return 0;」の後にこのエラーに直面しています。実行されました。

STL のベクトルを使用しました。このエラーは、入力ファイルのサイズが非常に大きい場合にのみスローされます (グラフに約 10000 個のノードがあります)。

また、出力をファイルに書き込むことができません。現在、私はその部分にコメントしています。

問題を解決してください。Ubuntu 12.10 64 ビットを使用しています。

4

1 に答える 1

1

から戻った後のエラーmainは、(少なくとも)次のことが原因で発生する可能性があります。

  • 危険なatexitハンドラー; また
  • 一部の説明のメモリ破損。

これら 2 つのうち、後者である可能性が高いため、コードを動的メモリ使用分析ツール ( valgrind. 問題を引き起こしている大きなベクトルの説明も、この競合をサポートしているようです。

于 2012-10-30T01:07:50.283 に答える