2016-08-09 74 views
-1
Program terminated with signal 11, Segmentation fault. 
#0 0x000000340f87a31f in _int_malloc() from /lib64/libc.so.6 
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.192.el6.x86_64 keyutils-libs-1.4-5.el6.x86_64 krb5-libs-1.10.3-57.el6.x86_64 libcom_err-1.41.12-22.el6.x86_64 libgcc-4.4.7-17.el6.x86_64 libselinux-2.0.94-7.el6.x86_64 libuuid-2.17.2-12.24.el6.x86_64 nss-softokn-freebl-3.12.9-11.el6.x86_64 openssl-1.0.1e-48.el6_8.1.x86_64 zlib-1.2.3-29.el6.x86_64 
(gdb) where 
#0 0x000000340f87a31f in _int_malloc() from /lib64/libc.so.6 
#1 0x000000340f87abfc in malloc() from /lib64/libc.so.6 
#2 0x00000000004a913b in UDataMemory_createNewInstance_54() 
#3 0x00000000004a7ac7 in doLoadFromCommonData(signed char, char const*, char const*, char const*, char const*, char const*, char const*, char const*, signed char (*)(void*, char const*, char const*, UDataInfo const*), void*, UErrorCode*, UErrorCode*)() 
#4 0x00000000004a89cb in doOpenChoice(char const*, char const*, char const*, signed char (*)(void*, char const*, char const*, UDataInfo const*), void*, UErrorCode*)() 
#5 0x000000000045febd in icu_54::CollationRoot::load(UErrorCode&)() 
#6 0x000000000045ffe8 in icu_54::CollationRoot::getRootCacheEntry(UErrorCode&)() 
#7 0x000000000044b29a in icu_54::CollationLoader::loadTailoring(icu_54::Locale const&, UErrorCode&)() 
#8 0x000000000042d668 in icu_54::Collator::createInstance(icu_54::Locale const&, UErrorCode&)() 
#9 0x0000000000412691 in triagens::basics::Utf8Helper::setCollatorLanguage(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)() 
#10 0x00000000004120aa in triagens::basics::Utf8Helper::Utf8Helper(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)() 
#11 0x00000000004120ed in triagens::basics::Utf8Helper::Utf8Helper()() 
#12 0x0000000000414ac0 in __static_initialization_and_destruction_0() 
#13 0x0000000000414ae9 in _GLOBAL__sub_I__ZN8triagens6basics10Utf8Helper17DefaultUtf8HelperE() 
#14 0x000000000050d5e6 in __do_global_ctors_aux() 
#15 0x00000000004085cb in _init() 
#16 0x00007fc223318068 in boost::system::native_ecat() from /home/workspace/DLL_CPPServer/Debug/libDLL_CPPServer.so 
#17 0x000000000050d525 in __libc_csu_init() 
#18 0x000000340f81ecb0 in __libc_start_main() from /lib64/libc.so.6 

上記のコードはGDB情報です。 triagens::basics::Utf8Helper::Utf8Helper()は私のコードと呼ばれていませんでした。私はThirdPartyライブラリから呼び出され、そのメソッドは3rdパーティのソースに存在すると思いますが、utf8Helperキーを検索するときに使用されていません。 私は理由を知らなかったので、助けてくれますか?コアがダンプされましたが、エラーの場所が見つかりませんでした.GDBのエラー情報があります。

+1

mallocでコアダンプをダンプする=>ヒープを破損している可能性が最も高いです。 valgrindまたはsanitizersを使用して、問題があるかどうかを確認します。 – Mat

+0

'malloc'にクラッシュが発生した場合、おそらく、割り当てられたメモリの外に書き込んでしまう可能性があります。このような問題を見つけるには、[Valgrind](http://valgrind.org/)などのツールを使用してください。 –

+0

私はValgrindをダウンロードし、それをdebug.Butに使用して、エラーメッセージはGDBのINFOに似ています。まだエラーの位置情報はありません。 –

答えて

0

@MatthewFisher hm。 doLoadFromCommonDataにブレークポイントを設定しましたが、動作しません。プログラムが参加しませんでした。私は 'export MALLOC_CHECK_ = 2'と './test'を使ってcore.4675を生成します。使用する 'GDB ./test core.4675'、 'どこ' 生産つの通路:

CompletePortLogFile::CCompletePortLogFile(string sFullPath) 
{ 
     _sFullPath = sFullPath; 
     InitializeCriticalSection(&_freeStackLock); 
     InitializeCriticalSection(&_fileLock); 
     _hFile = NULL; 
     _hCompletePort = NULL; 
     _nTotalSize = 0; 
     _nPackageNo = 0; 
} 


if(NULL==g_pLogFile) 
{ 
     g_pLogFile = new IOTP::CCompletePortLogFile(".\\CPPServer.log"); 
     g_pLogFile->init(); 
} 

は、GDBのエラー情報があります:コードあり

`Program terminated with signal 11, Segmentation fault. 
#0 0x000000340f876009 in malloc_consolidate() from /lib64/libc.so.6 
#0 0x000000340f876009 in malloc_consolidate() from /lib64/libc.so.6 
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.192.el6.x86_64 keyutils-libs-1.4-5.el6.x86_64 krb5-libs-1.10.3-57.el6.x86_64 libcom_err-1.41.12-22.el6.x86_64 libgcc-4.4.7-17.el6.x86_64 libselinux-2.0.94-7.el6.x86_64 libuuid-2.17.2-12.24.el6.x86_64 nss-softokn-freebl-3.12.9-11.el6.x86_64 openssl-1.0.1e-48.el6_8.1.x86_64 zlib-1.2.3-29.el6.x86_64 
(gdb) where 
#0 0x000000340f876009 in malloc_consolidate() from /lib64/libc.so.6 
#1 0x000000340f879d08 in _int_malloc() from /lib64/libc.so.6 
#2 0x000000340f87c538 in malloc_check() from /lib64/libc.so.6 
#3 0x000000340f87ab31 in calloc() from /lib64/libc.so.6 
#4 0x000000340f835ca4 in __new_exitfn() from /lib64/libc.so.6 
#5 0x000000340f835d58 in __cxa_atexit_internal() from /lib64/libc.so.6 
#6 0x000000000041f1c9 in __static_initialization_and_destruction_0() 
#7 0x000000000041f238 in _GLOBAL__sub_I_TRI_prioritynames() 
#8 0x000000000050d5e6 in __do_global_ctors_aux() 
#9 0x00000000004085cb in _init() 
#10 0x00007f7f1dc5a068 in boost::system::native_ecat() from /home/workspace/DLL_CPPServer/Debug/libDLL_CPPServer.so 
#11 0x000000000050d525 in __libc_csu_init() 
#12 0x000000340f81ecb0 in __libc_start_main() from /lib64/libc.so.6 
#13 0x0000000000409449 in _start()` 
+0

@MatthewFisherこの文章は原点質問のエラーコード –

+0

ヒープの破損によって異なる場所でクラッシュが発生する可能性があります。リンクされているライブラリの数を最小限に抑え、再度実行してください。うまくいけば、クラッシュの領域を絞り込むことができます。静的オブジェクトや関数内でコード内の新しい/ malloc処理を注意深くチェックしてください。通常、サードパーティのライブラリはカスタムコードよりも優れているため、問題がコード内に存在する可能性が高くなります。 –

+0

hm、ありがとう、私はあなたのsugestionに応じてテストします。私は私のプロジェクトを分割し、テストを最小限に抑えると、私は奇妙なエラーが見つかりました: "hello"のような文字列定数を使用して、 、それは常にそのセグメンテーションエラーをエラーします "。そして、私はarangodbのライブラリをテストする方法を知らない。 –

0

Program received signal SIGSEGV, Segmentation fault. 
0x000000340f87a31f in _int_malloc() from /lib64/libc.so.6 
(gdb) where 
#0 0x000000340f87a31f in _int_malloc() from /lib64/libc.so.6 
#1 0x000000340f87abfc in malloc() from /lib64/libc.so.6 
#2 0x0000003e8005e808 in operator new(unsigned long)() 
    at ../../../../gcc-4.9.2/libstdc++-v3/libsupc++/new_op.cc:49 
#3 0x0000003e800c3c49 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)() 
    at /home/hewei/download/gcc-build-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/new_allocator.h:104 
#4 0x0000003e800c55c5 in char* std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag)() 
    at /home/hewei/download/gcc-build-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:138 
#5 0x0000003e800c59f6 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)() 
    at /home/hewei/download/gcc-build-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:1743 
#6 0x00007ffff7dd12e3 in iotp_initGlobalLogFile()() at ../src/main/ActivemqServer.cpp:62 
#7 0x00007ffff7dd13bf in iotp_GetLibraryInstance() at ../src/main/ActivemqServer.cpp:71 
#8 0x000000000040147b in testDLL(char*)() 
#9 0x00000000004016a2 in main()