gpt4 book ai didi

C++ 程序在进行库调用时死掉

转载 作者:行者123 更新时间:2023-11-28 06:31:41 24 4
gpt4 key购买 nike

我是 C++ 的新手。我在库中添加了一个新方法(它是一个打印日志并返回的简单方法),并成功编译了它。然后我尝试从我的程序中调用该方法。当试图调用该函数时,程序会在没有任何警告的情况下终止。没有要调试的核心转储。

(程序在不调用这个函数时运行正常,我试过了,kill -s SIGSEGV $pid。此时生成了核心转储。所以生成核心转储没有问题)

由于程序死机了,我也不能使用 pstack。我的调试日志表明对库的调用永远不会返回。我在图书馆的调试日志也没有打印出来。

也没有 NULl 指针问题,因为我在调用库函数之前检查 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;

}

我看到的最后一条日志是“Im not NULL”程序死了。任何人都可以提示可能是什么问题。在没有管理员权限的情况下,solaris 中是否有一个地方可以检查程序发生了什么(为什么它死了等)....

最佳答案

我解决了这个问题。这是我的一个愚蠢的错误。尽管我用新函数编译了库,但我没有将它添加到测试环境中。测试环境有没有新功能 API 的旧版本库

但是非常惊讶的是函数调用没有使程序崩溃,也没有显示出任何问题的迹象

关于C++ 程序在进行库调用时死掉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27418500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com