繁体   English   中英

为在Visual Studio中工作的C ++程序而在Linux中弃用了Abort Core

[英]Abort Core Dumped in linux for a C++ progam that works in Visual Studio

我有一个在Visual Studio中构建并运行的C ++项目。 当我尝试在Unix中运行它时,它给了我Abort(Core Dumped)

我正在使用g ++版本3.2.2如何修复此程序? 它需要在linux中运行。

第一步是学习如何使用gdb或其他任何用于Linux的优秀调试器。

那应该能够告诉您确切的问题源线。 然后从那里回来。

除此之外,如果没有看到该源代码,我们将无济于事。 心理调试虽然有用,但并不是一个高度发达的领域:-)

@All非​​常感谢您的回复。我非常感谢

我的程序使用g ++ 4.2.3。 它在g ++ 3.2.2中中止。

在Visual Studio中为我提供正确输出的代码是

foundOpen = inStr.find("(");
foundClose = inStr.find(")");
string inGate;
inGate = inStr.substr(++foundOpen,foundClose-foundOpen);

但是使用g ++时,我不得不对substr函数进行一些小的更改。

foundOpen = inStr.find("(");
foundClose = inStr.find(")");
string inGate;
inGate = inStr.substr(++foundOpen,foundClose-foundOpen-1);

我也是使用linux的初学者,不知道如何使用gdb。 有什么好的教程可以学习gdb吗?

我要飞的猜测:你的程序使用“ getch() ”,你发现在库中的函数-lcurses-lncurses和正在使用的库,但你的程序崩溃,你说。

麻烦的是,该功能需要一定数量的设置才能起作用-与Windows上名称相似但功能不同的功能不同。

欢迎来到现实世界-不同的平台在标准API中具有不同的功能; 有时,两个平台具有相同名称但含义不同的功能。

另一个疯狂的猜测: 布尔值初始化 ,我们被这一点所困扰。 布尔值是使用VC ++ 2003自动初始化的,但在Linux上不是(因此,对或错,掷硬币...)。

花费了一段时间进行调试,因为在我们的案例中它没有崩溃并且是间歇性的。 我想拍打程序员,因为他没有初始化他的变量!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM