如何報告LibreOffice中的Bug

From The Document Foundation Wiki
< QA‎ | BugReport(Redirected from BugReport/zh-tw)
Jump to: navigation, search

報告LibreOffice的Bug

這個問題真的是bug嗎?

如果您在使用LibreOffice的過程中需要幫助,請考慮將您的問題發到LibreOffice用戶郵件列表中。

搜索已有或者相似的bug報告

在您提交一個新的bug報告之前,請先檢查是不是有人已經報告了這個問題了。如果已經有的話,您可以在現有的報告中補充有關你所遇到問題的信息。

請其它人重現你遇到的問題

請您在users@global.libreoffice.org郵件列表中或者#libreoffice IRC頻道上讓其它人重現您報告中提到的問題。

報告bug

LibreOffice軟體包中的bug的提交都在FreeDesktop Bugzilla中進行。您可以直接在"LibreOffice"分類下提交一個bug。

根據bug的類別,您可以選擇不同的組件:

  • 對于LibreOffice.org官方網站的問題,請選擇WWW組件。
  • 對于一般的程序中的bug,請相應地選擇WriterPresentationSpreasheetDatabase或者Drawing組件。

對于其它任何問題,請選擇other組件。在下拉清單中點擊組件,您將會得到提示。

如果您不確定您的問題是有關哪個組件的,請選擇Libreoffice組件。bug分類員會為您選擇一個合適的組件的。

請位您遇到的每一個問題創建一個單獨的bug報告!

如果您覺得使用bug追蹤系統遵照各選項和要求提交bug很困難的話,請您在users@global.libreoffice.org郵件列表或者libreofficeforum.org論壇中提交您的問題;您在那裏也會得到幫助的。

報告Ubuntu bug

目前Ubuntu專屬的問題列表在:

如果您是從PPA中安裝的LibreOffice,您必須提交Ubuntu專屬bug,而不是在FreeDesktop Bugzilla中提交一般性bug。

在提交Ubuntu專屬Bug之前,請您先檢查目前的問題列表,然後:

  • 如果您在使用Ubuntu 10.04 LTS或者Ubuntu 10.10,請使用這個表單提交問題。表單中 In what package did you find this bug?一項請選擇libreoffice
  • 如果您在使用Ubuntu 11.04,請打開一個終端窗口(使用應用程式 > 附屬應用程式 > 終端),輸入ubuntu-bug libreoffice按Enter鍵,然後按提示完成報告。

記得為您的報告加上lo33標記,并在報告中加入有關你如何安裝LibreOffice、使用什麼平台(32位或64位)以及重現問題的步驟。

將上面的問題再提交一份給FreeDesktop.org作為“上游報告”也很好。這樣的“上游報告”對可以幫助檢查和修正其它版本的LibreOffice中的相應問題。

bug報告中應該包括的內容

下面這些信息將能幫助我們重現您的問題或者找到您的問題的症結所在,這樣您的問題將得到更早地修正:

  • 如果您沒有太多關於報告bug的經驗,請認真閱讀bug提交指南(bug writing guidelines), 你可以在提交bug(Enter Bug)頁面的頂端找到鏈接!
  • 使用正確的組件(Component)版本(Version)初始狀態(Initial Status),請您注意bug報告細節中的提示。
  • 除了下拉選擇的內容外,請您給出有關您的系統版本的架構的細節信息,比如:openSUSE 11.2 on x86_64, 32-bit Windows 7
    • 對于Linux,再加上您的桌面環境,比如:KDE或者GNOME
  • LibreOffice的版本(Version),比如:3.2.0。您應該從“說明/關於 LibreOffice”中查看版本。如果您使用的是預編譯的LibreOffice包,對於Linux系統,請給出在您的包管理系統中LibreOffice包的確切版本號;而對於Windows用戶,請您給出您安裝文件的確切名稱,以及您是從哪裏下載的安裝文件。
    • 此外,有關您安裝和使用的界面或者文檔的語言信息也可能很有用;
    • 如果您在使用64位操作系統,告訴我們您用的是不是32位的LibreOffice;
    • 如果您使用的不是官方提供的LibreOffice預編譯包,請告訴我們您的源代碼來源。
  • 請為您要報告的問題給出有實際意義的總結(Summary)。您:
    • 不應該寫成:“UI broken”(界面有問題),
    • 而應該寫成:“Menu 'File -> Save as' not available (greyed out)”(“文件”菜單中“另存新檔”一項不可用,為灰色)。
  • 請您給出重現問題的步驟。注意每一個小的細節都有可能是至關重要的。所以您:
    • 不應該寫成:“Open document”(打開文件),
    • 而應該寫成:“In new empty LibO Spreadsheet document, use menu 'file -> open (LibO dialog) - file type "Text documents" -> select attached sample document -> double click'”(在一個空白的LibreOffice試算表文檔中,使用菜單“文件/打開”,在LibreOffice對話框中,選擇“文本文檔”,選擇附件中的樣例并雙擊)。
    • 提供詳細的問題描述。您:
      • 不應該寫成:“Formatting not correct”(格式不對),
      • 而應該寫成:“I expect xxx because of yyy, but I see zzz”(本來它應該是xxx,因為yyy。結果確成了zzz)。
  • 請您給出更多有用的細節(比如截圖、文檔樣例、追蹤記錄、系統調用追蹤記錄)。請您注意其它人可能也可能不能從您給出的文檔樣例中了解到您遇到的問題,因為他們可能在使用不同的操作系統、不同的LibreOffice設置或者有其它原因。所以截圖很重要。如果您能利用一些圖片編輯工具在截圖中加入一些批注或者標記出一些有問題的區域,那樣會更好。

How to get strace log (on Linux)

In most cases, it is enough to start the application the following way:

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

Then please do the steps to reproduce the problem and quit the application. The command libreoffice might be replaced with /opt/libreoffice/program/soffice specifically when you don't have the desktop integration installed.

Please, compress the log before it is attached to the bug report:

bzip2 /tmp/strace.log

If the 32-bit LibreOffice is running on 64-bit system, you need to install the package strace-32bit and start the 32-bit binary directly:

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

How to get backtrace (on Linux)

The backtrace is useful when the application crashes or freezes. You might use the following steps:

  1. Install the libreoffice*-debuginfo packages, if available. If you do not have them, the backtrace is less useful, but still could potentially provide at least some information.
  2. Start the debugger with the real binary and log the output:
    cd /opt/libreoffice/program
    
    gdb ./soffice.bin 2>&1 | tee /tmp/gdb.log
    
  3. Inside the debugger, start the application:
    run
    
    Should you need to specify options to the LibreOffice command line, use run <options>, like eg. run -writer, or run /path/to/document.odt
  4. Do the steps to reproduce the application crash or freeze. If the freeze is the case, you need to press CTRL-C in gdb to get the gdb commandline back.
  5. Produce the backtrace:
    backtrace
    
  6. Produce backtrace of all threads:
    thread apply all bt
    
  7. Quit the debugger
    quit
    
  8. Attach the whole gdb.log to the bug report.

How to get valgrind log (on Linux)

The valgrind log is useful when the application crashes or freezes and the backtrace is not enough. You might use the following steps:

  1. Install the libreoffice*-debuginfo packages. (if available, and/or from your linux distribution)
  2. Start the debugger with the real binary and log the output:
    cd /opt/libreoffice/program
    
    valgrind --tool=memcheck --num-callers=128 --trace-children=yes ./soffice.bin 2>&1 | tee /tmp/valgrind.log
    
  3. Do the steps to reproduce the application crash or freeze. Note that it usually works fine with valgrind because it helps to keep the memory clean. Anyway, it should detect the danger and put some useful information to the log. Note that valgrind prints many warnings all the time. You really need to do the problematic steps to put the important data into the log.
  4. Quit LibreOffice
  5. Please, compress the valgring.log if it is bigger that 10kB
    bzip2 /tmp/valgrind.log
    
  6. Attach the log into to the bug report.