相关疑难解决方法(0)

std :: sort中的SIGSEGV,如何缩小范围

这是一个相关的帖子这一个,因为它使用相同的程序交易,但现在我实现了它的迭代,并不再递归的,但我仍然得到SIGSEGV(但后来)运行程序时.我对我的程序进行了一些其他更改以缩小范围,我认为将对象向量更改为ptr向量到堆上的对象确实给了我一些额外的回合(大约200),但仍然崩溃.我建议以某种方式保存程序中的变量的内存耗尽,但是当我转储程序的堆栈大小时:

rlimit rlim;
getrlimit(RLIMIT_STACK,&rlim);

std::cout << "rlim_cur ist:" << rlim.rlim_cur << std::endl;
std::cout << "rlim_max ist:" << rlim.rlim_max << std::endl;
Run Code Online (Sandbox Code Playgroud)

输出是:

rlim_cur ist:8388608
rlim_max ist:18446744073709551615
Run Code Online (Sandbox Code Playgroud)

这似乎是相当大,并没有用尽,是否有任何其他相关限制转储,以进一步缩小我的问题,并希望解决它?

这里调试器的转储:

Program received signal SIGSEGV, Segmentation fault.
0x000000000040b2a0 in Town::get_cur_capacity (this=0x0) at ./solver/Darstellung.cpp:98
98      return left_over_capacity;
(gdb) backtrace
#0  0x000000000040b2a0 in Town::get_cur_capacity (this=0x0) at ./solver/Darstellung.cpp:98
#1  0x000000000040b9ab in Town::compare_by_capacity (eins=0x0, zwei=0x0) at ./solver/Darstellung.cpp:135
#2  0x00000000004124c7 in std::__move_median_first<__gnu_cxx::__normal_iterator<Town**, std::vector<Town*> >, bool (*)(Town const*, Town const*)> (__a=..., __b=..., __c=..., 
    __comp=0x40b98e <Town::compare_by_capacity(Town const*, Town const*)>) …
Run Code Online (Sandbox Code Playgroud)

c++ segmentation-fault

2
推荐指数
1
解决办法
1426
查看次数

标签 统计

c++ ×1

segmentation-fault ×1