c++ - core dumped,但没有找到错误位置,有GDB的错误信息

标签 c++ linux arangodb .so

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() 没有调用我的代码。首先,我认为它是由 3rdParty 库调用的,并且该方法存在于 3rdparty 的源代码中;但是当我搜索 utf8Helper 键时,我没有发现它被使用。 所以我不知道原因,你能帮助我吗?

最佳答案

@MatthewFisher 嗯。我在doLoadFromCommonData上设置了断点,但是不起作用,程序没有加入它。我使用“export MALLOC_CHECK_=2”和“./test”,它生成一个 core.4675。使用“gdb ./test core.4675”,“where”生成一段:

`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 ()`

关于c++ - core dumped,但没有找到错误位置,有GDB的错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38845616/

相关文章:

c++ - 在 C++ 中绘制线条

c++ - Windows 7 下的 Visual Studio 2015 缺少 Api-ms-win-core-errorhandling-l1-1-1.dll

python - 使用 pybind11 包装 C++ void 函数

linux - 在本地主机上编辑文件时出现问题

c++ - 禁用模板类中的函数

c# - Mono 无法访问文件,即使 linux shell 可以在没有 root 的情况下访问

linux - 内核空间有libc吗?

ArangoDB:在遍历查询中按集合类型过滤

graph-databases - 什么是最快的 ArangoDB 好友好友查询(有计数)

graph - 从边集合创建 arango 图