3
在我的C++项目中,我遇到了一个很奇怪的问题。它与退出码11崩溃时,我删除某个日志语句(cout
)。当我删除cout语句时,为什么我的C++程序崩溃并退出代码11?
This answer指向与下面的语句说明退出码11(实际上EAGAIN
)来源:
系统缺乏必要的资源来创建另一个线程,或 的系统强加的限制总一个进程中的线程数量 PTHREAD_THREADS_MAX将被超出。
但我很确定不要在我的代码中创建任何额外的线程(至少不是明确的)。那么为什么会发生错误,为什么当我使用日志语句时会消失?
仅供参考,我会后的代码,但它完全是当然的断章取义,基本上是唯一的相关行是一个与日志语句。
PayloadRegionMapper(string mappingTechniqueName, string configPath = "")
: payload(PAYLOAD), config(Config(configPath)) {
cout << "construct PayloadRegionMapper" << endl; // if commented out, my program crashes....
frames = generateFrames();
setMappingTechnique(mappingTechniqueName);
}
当你附加一个调试器时你会得到什么? –
运行内存检查程序,就像valgrind –
您是否尝试用另一个语句替换'cout'?那是'std :: cout'吗? – Carcigenicate