SIGABRT 运行时何时出现错误以及如何在这种情况下进行调试
When does SIGABRT runtime error arise and how to debug in such cases?
从昨天开始,我一直在尝试提交问题的解决方案,但仍然徒劳无功。对于较大的测试用例,我收到运行时错误。在研究此运行时错误时,我开始知道它是由使用过多内存引起的。我有一个大小<=10^6
数组和一个<=10^12
整数对的向量。这是否会导致堆栈溢出,尤其是在向量的情况下?PS:我已经多次使用C++ STL,但从未遇到过这些限制下的内存溢出。
很可能您的内存不足(除非您的系统有 >8TB 的虚拟内存)并且抛出std::bad_alloc
。未处理的异常将导致调用 terminate()
调用 abort()
。
如果您真的想调试它,请在 gdb
下运行您的程序,您应该看到类似以下内容:
Program received signal SIGABRT, Aborted.
然后,可以键入 bt
以查看堆栈跟踪。
相关文章:
- 我是c ++的新手,你能解释一下在这种情况下的指针吗
- 在这种情况下,java对象是否可以调用本机函数
- 在这种情况下显式调用时,std::cout 如何更改析构函数的行为?
- 在这种情况下,我真的复制了字节还是复制了字符?
- 为什么在这种情况下,bool 类型的输出等于 0?
- 在这种情况下,如何传递成员函数而不是函数?
- 为什么在这种情况下递增阵列名称有效?
- 在这种情况下我应该使用哪种设计模式
- 为什么在这种情况下我需要 .template
- 在这种情况下,使用 string_view 是否会导致不必要的字符串复制?
- 我是否访问了已释放的内存,或者在这种情况下DrMemory报告不正确?
- 在这种情况下,"typename..."意味着什么?
- 为什么在这种情况下 x = 44?
- 在这种情况下是私有的吗?试图使操作员<<过载
- 在这种情况下,如何防止C++输出/控制台窗体关闭
- 为什么 lambda nullptr 取消引用在这种情况下有效?
- 为什么在这种情况下,前向声明不起作用?
- 为什么在这种情况下不调用我的虚拟函数实现?
- 在这种情况下如何调试动态库
- SIGABRT 运行时何时出现错误以及如何在这种情况下进行调试