openSUSE:Bugreport LO

跳转到:导航搜索


本文档介绍如何提交 LibreOffice 错误报告。

LibreOffice 错误报告

来自官方 openSUSE 发行版以及 LibreOffice:StableLibreOffice:Unstable BS 项目的 libreoffice 包中的错误,应报告到 Novell 的 bugzilla,产品为 "LibreOffice",或者上游 BugZilla:https://bugs.documentfoundation.org/

错误报告中应包含的内容

以下信息有助于我们重现或定位问题,因此修复可能更早地提供给您

  • 系统版本和架构,例如:openSUSE-10.2-x86_64
  • 桌面环境,例如:KDEGNOME
  • LO 标签,例如 "Tag libreoffice-3.3.0.4"。从 “帮助/关于 LibreOffice” 对话框的最后一行获取。
  • 32 位 OOo 在 x86_64 系统上使用
  • 软件包已从 Build Service 更新
  • 重现问题的步骤
  • 其他有用的详细信息(例如,屏幕截图、回溯信息、strace)

如何获取 strace 日志

在大多数情况下,以以下方式启动应用程序就足够了

strace -o /tmp/strace.log -f -tt -s 512 libreoffice

然后请执行重现问题的步骤并退出应用程序。命令libreoffice可以替换为任何其他命令,例如:lowriter请在将其附加到错误报告之前压缩日志

bzip2 /tmp/strace.log

如果 32 位 LO 在 64 位系统上运行,您需要安装软件包strace-32bit并直接启动 32 位二进制文件

cd /usr/lib/libreoffice/program
strace32 -o /tmp/strace.log -f -tt -s 512 ./soffice.bin

如何获取回溯信息

当应用程序崩溃或冻结时,回溯信息很有用。您可以使用以下步骤

  1. 安装libreoffice*-debuginfo软件包。请注意,您需要添加 调试仓库 以获取原始 openSUSE 包。
  2. 使用真实二进制文件启动调试器并记录输出
    cd /usr/lib/libreoffice/program
    gdb ./soffice.bin 2>&1 | tee /tmp/gdb.log
    您需要使用/usr/lib64代替/usr/lib与 64 位 OOo 一起使用。
  3. 在调试器内部,启动应用程序
    run <options>
  4. 执行重现应用程序崩溃或冻结的步骤。如果出现冻结,您需要按下CTRL-C以返回 gdb 命令行。
  5. 打印回溯信息
    backtrace
  6. 打印所有线程的回溯信息
    thread apply all bt
  7. 退出调试器
    quit
  8. 将整个gdb.log附加到错误报告。

如何获取 valgrind 日志

当应用程序崩溃或冻结并且回溯信息不足时,valgrind 日志很有用。您可以使用以下步骤

  1. 安装libreoffice*-debuginfo软件包。它可以在 中获取原始软件包,或者如果您已从 LibreOffice:StableLibreOffice:Unstable 更新,则可以在额外的仓库中获取。
  2. 使用真实二进制文件启动调试器并记录输出
    cd /usr/lib/libreoffice/program
    valgrind --tool=memcheck --num-callers=128 --trace-children=yes ./soffice.bin 2>&1 | tee /tmp/valgrind.log
    您需要使用/usr/lib64代替/usr/lib与 64 位 LO 一起使用。
  3. 执行重现应用程序崩溃或冻结的步骤。请注意,它通常可以与 valgrind 很好地配合使用,因为它有助于保持内存清洁。无论如何,它应该检测到危险并将一些有用的信息放入日志中。请注意,valgrind 会一直打印许多警告。您确实需要执行有问题步骤才能将重要数据放入日志中。
  4. 退出 LO
  5. 如果 valgring.log 大于 10kB,请压缩它
    bzip2 /tmp/valgrind.log
  6. 将日志附加到错误报告。