如何判断segg故障
How To Determine Seg Fault?
我有一个有趣的分割错误。它发生在我的代码中一个未知的地方。代码相当简单,只有两个对象和一个通用函数。该函数应该创建对象的图形。当我运行仅使用main调用函数的代码时,我在GDB中得到一个seg错误和以下代码行。
程序收到信号SIGSEGV,分段错误。0x00007ffff758a02c in free () from/lib/x86_64-linux-gnu/lib .so.6
当我在函数调用前的main中添加一行时,这只是简单的cout <<"检查";我仍然得到一个分割错误,但检查不出现在输出中。我真的迷路了。接下来我应该尝试什么?
编辑:谢谢你使用flush的帮助。我在代码中找到了导致隔离故障的区域。我使用的函数对我来说是新的,所以我仍然有点迷路。有人看到bug了吗?
const char* inFile = inFileP.c_str();
list<CContinent> world;
CCountry *homeCountry = new CCountry;
CCountry *neighborCountry = new CCountry;
fstream filestr;
filestr.open(inFile, fstream::in | fstream::out | fstream::app);
string line;
从痛苦的经验来看,当malloc或free发生崩溃时,这是因为堆损坏。任何一种常见的疑点都可能导致堆损坏——分配10个字节,写11 - free,然后写到空闲内存,双free,等等。
Valgrind是一个调试程序的有用工具。在第一个视图中,我没有看到世界变量的初始化。
相关文章:
- 分段故障(堆芯转储)矢量
- C++中的动态铸造故障
- 数组的指针从不分段故障
- vscode g++链路故障:体系结构x86_64的未定义符号
- 访问被拒绝后,c++中的故障保护代码
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 调试 CUDA MMU 故障
- Geeksforgeeks C 程序故障排除:IEE 754 表示法为十进制
- Arch Linux.AUR 包 mysql 不能用 makepkg 构建.错误:构建 () 中出现故障
- 正在处理故障(堆芯转储)
- 在 Boost::fiber 中引发的BOOST_ASSERT故障 Visual Studio "Debug" 构建
- 如何进行故障排除:未定义对"非虚拟 thunk to ..."的引用
- C++函数过载会导致 SEG 故障
- 分段故障 运行C++代码时出现 SIGSEGV
- 当新的故障时,是否有必要留出一些紧急内存?
- Python & C-C++ 扩展模块案例段故障
- 带升压的 SEG 故障::make_shared / 特征3 内存.h.
- 在 c++ 中,发生故障后是否需要 stream.clear()?
- 分段故障背包问题
- 如何判断segg故障