首页 > 解决方案 > 如何将分段错误中的信息映射到源代码中的行?

问题描述

我得到一个分段错误(Address not found)。我收到的结果如下所示:

#3    Object "/some/dir/bin/myProject", at 0x415526, in 
#2    Object "/some/dir/bin/myProject", at 0x40d3f9, in 
#1    Object "/some/dir/bin/myProject", at 0x409b1a, in 
#0    Object "/lib64/libpthread.so.0", at 0x7f9a82a78cd0, in pthread_mutex_lock

我想知道位置转换到哪个命令myProject.cpp。我怎样才能做到这一点?

我不检查这个的原因gdb是这个错误是由多个线程通信的方式引起的,并且人为干预引入了太多的等待时间,以至于这个错误不会发生。错误也是零星的...

附加问题:

我对错误的理解Address not found是,这可能是由于取消引用 nullprt 或尝试访问错误位置的容器引起的。你会同意吗?

编辑

感谢您建议调试核心转储文件。这样做的问题是:当出现这个错误时,程序并没有崩溃!错误(或类似错误)被打印到控制台并且程序被卡住(再次多线程......)。它不会终止,所以我猜没有转储文件(如果我错了,请纠正我!)。我找不到任何...

标签: c++binarysegmentation-faultgdbmemory-address

解决方案


推荐阅读