Bug tracker

如發現任何ClamAV的bug,請核對最新的 SVN code

如未能修正那些bug,可探訪我們的 bug tracker

如發現來自ClamAV軟件的bug而該bug由 其它組織 所發佈(例如ports,並非由我們直接維護),由於並非由我們控制,所以請勿向我們報告。如有需要,可向其開發者查詢。

請在向我們報告bug時提供以下資料(根據重要程度排列次序):

  • 電郵地址:必須正確無誤,以便軟件開發人員可向您獲取更多資料,並於問題解決後通知您。
  • ClamAV版本:輸入以下指令所得的結果:
    clamscan -V

  • 系統資料:系統的詳細陳述,例如輸入以下指令所得的結果:
    uname -mrsp
  • 檔案庫版本:您正在使用libc和zlib的版本
  • 如何重現問題:如果只有掃描個別檔案時才能夠重現問題,可把這個檔案附加在信息中。為避免對大家使用中的郵件伺服器造成破壞,請謹記將該檔案 “加密”,以策安全。
    zip -P virus -e file.zip file.ext

檔案內容絕對保密。如果檔案太大以致不能寄出電郵,您可選擇上載到某些網站,以密碼作保護,然後把URL和登入資料告訴我們。

  • clamscan的backtrace:請執行 “gdb”(GNU Project Debugger),並將得出的backtrace電郵給我們。

步驟如下:

假設您得到以下結果:

$ clamscan --some-options some_file
Segmentation fault

首先必須令kernel寫入core dump,例如在bourne-like shells(即bash)輸入指令:

$ ulimit -c unlimited

在C-like shells(即tcsh)的環境下輸入指令:

> limit coredumpsize unlimited

便會得到以下core dumped信息:

$ clamscan --some-options some_file
Segmentation fault (core dumped)

在您現時的工作目錄中會出現一個稱為“core”的檔案:

下一步便是把core檔案載入gdb:

$ gdb -core=core --args clamscan --some-options some_file
(gdb)

這樣會出現gdb提示號,在gdb提示號旁輸入“bt”指令,gdb將顯示完整backtrace。

複製及貼上backtrace(clamd的backtrace)到除錯報告後,可輸入指令“q”以離開gdb。

用 “ps” 尋找clamd的PID(最左邊首個數字):

$ ps -aux (or ps -elf on SysV)
clamav 24897 0.0 1.9 38032 10068 ? S Jan13 0:00 clamd

把gdb附加到運行中的程序:

$ gdb /usr/sbin/clamd 24897

以clamd的pid取替24897,然後調整clamd的路徑,可得到gdb提示號如下:

(gdb)

如想clamd繼續運行直至出現segmentation fault,可輸入”continue” gdb指令,直至自動返回gdb提示號並出現錯誤訊息。

“bt” 表示在使用中的thread得出backtrace。

用”info threads”指令可知道共有多少threads。

用”thread n”可轉換到指定的thread,然後再次執行”bt”指令而得到backtrace。

因此,您可以:
用”info threads”指令得悉threads有多少以及所有threads的id

根據每一條thread,可執行以下指令:

thread id_number
bt

輸入”quit”可離開gdb,有關運行中的程式則可回答”y”。

  • Strace:如您認為有需要可選擇使用,至於strace得出的訊息將不會在這裡提供解釋。
  • 注意 *:這些套裝軟體由第三者所開發,我們恕不負責。因此,如沒有特別聲明,我們不會直接維護這些套裝軟體和端口。

任何只影響我們不作維護的套裝軟體的程式錯誤報告將不會受理!如有疑問,可從原始碼編譯ClamAV。

此語言版本未能提供有關內容,謹此致歉。