错误信息:"Assertion 't = find_next_time_event( m )' failed at pulse/mainloop.c" ?...(C++)

Error message : "Assertion 't = find_next_time_event( m )' failed at pulse/mainloop.c" ?...(C++)

好的,我正在使用 CodeBlocks 在 C++ 中进行编程。我有 "random"(它不会每次都发生,而且我无法预测它何时发生)导致程序崩溃的错误消息,它说:

Assertion 't = find_next_time_event( m )' failed at pulse/mainloop.c:721, 
function calc_next_timeout() . Aborting .
Aborted (core dumped) .
Process returned 134 (0x86)

核心转储是指我不应该删除一些指针,对吗?

我不明白的是 "Aborted, core dumepd" 之前的内容。它能指导我犯下哪种错误吗? 或者是 CodeBlocks 的问题(我对此表示怀疑,但这可能很棒 :p)

*我没有在此处放置代码,因为我只想了解理论上可以创建此类消息的信息。然后我会搜索,如果我无法找到错误,我会在这里放一些代码;)*

告诉您 assertion 在文件 pulse/mainloop.c 的第 721 行失败,这是您源代码的一部分。

断言通常用于检查不变量或 preconditions/postconditions。以前置条件为例,就是说 "this expression has to be true in order for the code below to work correctly".

通过检查条件(在 mainloop.c 的第 721 行)并了解为什么它在您的情况下不正确,您应该能够在代码中找到导致断言失败的错误。

这不是真正的解决方案,但这个问题实际上与 PulseAudio 有关。我假设 OP 正在使用 Linux,可能是 Ubuntu,这就是发生此错误的时间。在使用用 Python 编写的程序时,我有时会得到同样的结果。 PulseAudio Launchpad 错误中有一个关于此问题的著名错误。