尝试引发异常时SIGABRT
我有一个非常奇怪的问题,已经引起了我几个小时的关注:
在我正在使用的软件上输入错误的信息时,我会产生一个异常(这当然是有意的)。运行正常,我在执行程序时看到正确的错误消息。
但是,当我通过API传递完全相同的输入(产生几乎相同的控制流)时,程序崩溃。通过调试,我看到以下内容(我使用gdb进行调试):
成功实例化了Exception类(在这种情况下称为UserExcption,并且该类没有虚拟方法,并且其前任也没有任何虚拟方法)。
当我将\“放入throw语句\”(想说我只是在实例化异常对象之后继续执行)时,得到以下输出:
(gdb)秒
纯虚拟方法称为
程序收到信号SIGABRT,异常终止。
__pthread_kill中的0x00007fff95c64ce2()
(gdb)
我真的不明白这里会发生什么。由于现在涉及到所有虚拟方法(据我所知),所以我也无法想象有一些悬空指针或类似的东西(否则,我希望得到一个空指针异常)。由于整个程序很大,而且我不知道在哪里查找问题,因此我也无法重现它。
有谁知道这种行为的根源是什么?
最佳马库斯
没有找到相关结果
已邀请:
1 个回复
夏瓤跋棘