![](/img/trans.png)
[英]C++ code involving vector works fine on visual studio and not on linux
[英]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.