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。
此語言版本未能提供有關內容,謹此致歉。
