C++程序在进行库调用时死亡
C++ program dies when making a library call
我是C++新手。我在库中添加了一个新方法(这是一个打印日志并返回的简单方法(,并成功编译了它。然后我尝试从我的程序调用该方法。尝试调用该函数时,程序会在没有任何警告的情况下死亡。没有要调试的核心转储。
(程序在不调用此函数时运行良好,我尝试过,杀死 -s SIGSEGV $pid。在此实例中,将生成核心转储。所以生成核心转储没有问题(
由于程序死了,我也不能使用 pstack。我的调试日志表明对库的调用永远不会返回。我在图书馆的调试日志也没有打印出来。
也没有 NUL指针问题,因为我在调用库函数之前正在检查NULL 指针
/* My Library function */
void EasyTaskScheduler::test1() {
tauloginfo << "inside test1" << endlog;
}
/* library call */
if (mapper == NULL) {
loggeneric << __FILE__ << "," << __LINE__ << "Is null:" << endlog;
return -1;
}
else {
loggeneric << __FILE__ << "," << __LINE__ << "Im not NULL" << endlog;
easyTaskScheduler->test1();
loggeneric << __FILE__ << "," << __LINE__ << "Test function returns: " << endlog;
return 0;
}
我看到的最后一个日志是"我不是空"程序死了。谁能给出提示可能是什么问题。在 solaris 中是否有一个地方可以在没有管理员权限的情况下检查程序发生了什么(为什么它死了等(。
我解决了这个问题。这是我的一个愚蠢的错误。尽管我使用新函数编译了库,但我没有将其添加到测试环境中。测试环境具有没有新功能 API 的旧版本的库
但很惊讶功能调用没有使程序崩溃,也没有显示出任何问题的迹象
相关文章:
- 如何从二进制文件中的给定符号中获取调用程序图
- 如何从Clojure调用C++程序,以使程序保持打开状态?
- bash脚本在使用popen()时不返回代码以调用C ++程序
- 从函数调用C++程序?
- 当可以返回错误/异常时,从库中终止调用程序(例如,调用exit())是否总是错误的?
- 是否可以通过另一个程序调用程序
- 使用 Visual Studio 从C++代码调用程序集过程
- 如何从调用程序访问 DLL 的变量?
- 使用可变包类型扩展的C++函数调用程序包装
- Fork()调用-程序从未终止
- 如何在Perl脚本中调用C++程序
- 从 Perl 代码调用C++程序
- C++调用程序中的所有 update() 函数
- DLL 处于调试模式,在发布模式下调用程序(反之亦然)
- 从C++调用程序集代码
- 从C++调用 c 程序并传递参数
- Excel调用C++程序的函数
- 主函数调用程序中的错误标记
- 我可以直接在gdb漂亮的打印机中调用程序的' operator[] '吗?
- 使用从调用程序传递的query或where子句