473
社区成员




#0 __GI___libc_free (mem=0x51) at malloc.c:3102
#1 0x00007f22399c5599 in g2o::Factory::registerType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, g2o::AbstractHyperGraphElementCreator*) () at /usr/local/lib/libg2o_core.so
#2 0x00007f223991c47b in __static_initialization_and_destruction_0(int, int) [clone .constprop.0] () at /usr/local/lib/libg2o_types_sba.so
#3 0x00007f223a1aab9a in call_init
(l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0x7ffe5e79d688, env=env@entry=0x7ffe5e79d698) at dl-init.c:72
#4 0x00007f223a1aaca1 in call_init
(env=0x7ffe5e79d698, argv=0x7ffe5e79d688, argc=1, l=<optimized out>)
at dl-init.c:30
#5 _dl_init
(main_map=0x7f223a1c8190, argc=1, argv=0x7ffe5e79d688, env=0x7ffe5e79d698)
at dl-init.c:119
#6 0x00007f223a19a13a in _dl_start_user () at /lib64/ld-linux-x86-64.so.2
#7 0x0000000000000001 in ()
#8 0x00007ffe5e79e1ee in ()
#9 0x0000000000000000 in ()
这段调试信息看起来是在程序运行时出现了段错误(Segmentation fault),导致程序崩溃。具体来说,__GI___libc_free
函数是 glibc 库中用于释放内存的函数,在这里出现通常是因为程序尝试释放一个无效的内存地址。
根据调用栈信息,似乎是在 g2o 库中的初始化过程中出现了问题。可能的原因包括:
内存损坏或越界访问: 程序可能在某个地方访问了无效的内存地址,导致了段错误。这可能是由于未初始化的指针、数组越界或者内存泄漏等问题导致的。
库版本不兼容: g2o 库可能与其他库或系统环境不兼容,导致了运行时错误。
针对这个问题,您可以尝试以下步骤来排查:
如果您能提供更多关于程序的信息,例如程序的部分源代码或更详细的运行日志,我可以为您提供更进一步的帮助。
这是gdb调试的结果