Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法确定信号SIGSEGV、分段故障的原因_C++_Ubuntu_Segmentation Fault - Fatal编程技术网

C++ 无法确定信号SIGSEGV、分段故障的原因

C++ 无法确定信号SIGSEGV、分段故障的原因,c++,ubuntu,segmentation-fault,C++,Ubuntu,Segmentation Fault,我在ubuntu上运行一个cpp程序。我收到信号SIGSEGV,分段故障 我尝试使用gdb查看分段错误的精确线。我从这个问题中得到了这个想法: gdb将向我返回以下信息: Thread 1 "incremental_sat" received signal SIGSEGV, Segmentation fault. 0x00007ffff7857c50 in std::__cxx11::basic_string<char, std::char_traits<char>, std

我在ubuntu上运行一个cpp程序。我收到信号SIGSEGV,分段故障

我尝试使用gdb查看分段错误的精确线。我从这个问题中得到了这个想法:

gdb将向我返回以下信息:

Thread 1 "incremental_sat" received signal SIGSEGV, Segmentation fault.
0x00007ffff7857c50 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
线程1“增量_sat”接收到信号SIGSEGV,分段错误。
0x00007FF7857C50在std::u cxx11::basic_string::compare(char const*)const()中来自/usr/lib/x86_64-linux-gnu/libstdc++.so.6
请参见以下终端的屏幕截图:

我使用的数据结构包括所有类型的向量和int和string的无序_映射

我能知道哪些代码行导致了这个错误吗

我不熟悉CPP中的调试。关于我可以继续使用此信息的方向,有什么建议吗

更新:在建议运行“bt”命令后,我添加了输出:

我观察到,它在调用cnf_transformation_out_diff()函数之后出现了分段错误。因为它甚至没有打印在cnf_transformation_out_diff()函数中编写的第一个cout命令


最后,我在朋友阿潘的帮助下解决了这个错误

在一个场景中,数据结构gates_out_diff保持为空。我没有添加安全检查,程序正在访问gates_out_diff[I][1]值,因此导致了分段错误


我修好那个箱子后,它就开始运转了。我花了一天时间。希望它能节省别人的时间。

gdb
中键入
bt
。根据您的建议按问题更新。请调查一下@请不要显示文本的图片。改为显示文本。编译程序时没有调试信息。使用
-g
标志重新构建,来自
bt
的输出将更加有用。@EmployeedRussian此问题已解决。我记下了这个建议,以便下次再提。谢谢