我该如何追查此错误消息的根本原因?
(测试:1090):GStreamer-CRITICAL **:gst_debug_log_valist:断言“类别!= NULL”失败
我--gst-debug=GST_REFCOUNTING:5
用来调试代码中可能需要 10 多个小时才能重现的间歇性问题。即使有 gst-debug 错误消息,管道似乎也能正常工作。我应该担心 GStreamer-CRITICAL 错误消息吗?
我通常做的是在 gdb 中使用 G_DEBUG=fatal-criticals 环境变量(请参阅 GLib 手册的运行 GLib 应用程序部分)在 gdb 中运行程序,并使用 gdb 获取回溯......类似于
G_DEBUG=fatal-criticals gdb -ex run --args ./test arg1 arg2 ...
如果您不想在 gdb 中实际运行该程序,您可以改用核心转储。
一旦你得到跟踪,你应该能够相当容易地找到有问题的代码。该消息可能是无害的和/或 GStreamer 内部的问题,但如果我是您,我至少会检查一下……这样的批评通常表明存在严重问题,例如等待发生的段错误。
请注意,该消息中的 1090 可能指的是PID,而不是生成的 C 中的行号。
看起来这条消息试图告诉您代码中某处的 gstreamer 日志消息只是缺少一个类别(如 GST_REFCOUNTING 或 )。由于您只想查看有关 GST_REFCOUNTING 消息的日志消息,因此 gstreamer 无法确定此特定消息是否重要。除非您编写了自己的插件或自己调用了一些日志记录功能,否则我猜这很可能是 gstreamer 本身或其插件之一的问题。
但除了分类错误的日志消息之外,它不应该引起任何麻烦