如何生成 VLC 堆栈跟踪?

l0b*_*0b0 5 gdb

我报告了一个VLC 错误并包含gdb's的输出bt full,但项目代表的回应是跟踪是“不完整的”。如何生成可供开发人员使用的跟踪?他们的文档和错误反馈没有说明如何做到这一点。

Rui*_*iro 5

按照您提供的链接,您的问题唯一有意义的部分是他们要求符号堆栈跟踪。但是,它对解释如何做没有帮助。

(例如,对于那些不知道或不记得的人,只能通过使用调试信息编译二进制文件才能获得符号堆栈跟踪)

我发现另一个 VLC 页面在该主题上更有帮助,并且比链接到的页面更好。

调试 - VLC

当编译VLC媒体播放器,您可以使用在./configure脚本--enable-调试必须编译调试二进制文件。

在正在讨论的情况下,根据前面提到的链接,我在这里替换了 can for must。

它的用途

当然,在调试模式下编译的二进制文件将或应该像发布版本一样(或多或少)。区别在于:

  • 开发人员可以在 VLC 达到用于开发目的的可疑状态时导致崩溃,而发布版本不会处于相同的可疑状态
  • 二进制回溯在这种模式下是有意义的,因为符号嵌入在其中。

    如何启用它

如上所述,您基本上只需要在 ./configure 阶段添加 CFLAGS="-g" CXXFLAGS="-g" --enable-debug 参数。

为了进入代码,更好的是做 CFLAGS="-g -Og" CXXFLAGS="-g -Og" 也添加 --disable-optimizations 而不是使用 --enable-release。将 -Og 替换为 -O0 以防止编译器优化变量。

因此,在编译调试二进制文件后,您现在可以向开发人员发送错误报告,描述导致崩溃和“gdb bt full”的操作。

另请参阅:VLC - 报告错误