2009-11-12 58 views
0

我有一個用戶在使用我的軟件時開始遇到與他的shell32.dll文件相關的訪問衝突。在升級到我們的軟件的最新版本之後,這是我們發佈的第一個在D2009中編譯的版本。Delphi 2009造成shell32.dll錯誤?

沒有人報告這些AV問題,我一直無法自己複製它們。所以它似乎與他特定的Windows安裝有關。我使用EurekaLog,所以我可以說這些AV中的一些與應用程序中的各種表單的創建或顯示有關。通常,以下參考作爲調用堆棧的最後一件事給出:

shell32.dll > ILIsEqual 

有沒有人有關於如何讓該用戶再次出發的任何想法?或者我怎樣才能得到更多的線索,究竟是什麼問題?在過去,我發現這些錯誤只發生在一臺用戶的機器上,很難追查到......

+0

客戶端使用什麼操作系統? – 2009-11-12 20:28:29

+0

調用堆棧中的最後一件事情可能不像調用堆棧中最後一件東西_從您的code_那樣重要。你的代碼在做什麼,它調用的最終調用shell32的函數是什麼? – 2009-11-12 22:34:50

+0

客戶端使用XP專業版SP3。問題是我的代碼中的最後一件事情並不總是相同的。錯誤不是來自任何可重複的行爲(如點擊按鈕等)。另外,它總是從簡單的事情,如顯示錶單。我開始認爲他的操作系統安裝可能會搞砸了嗎? – croceldon 2009-11-13 02:18:49

回答

1

我同意,很難複製這樣的錯誤。這就是質量記錄如此重要的原因。對於這樣的問題,我會採用以下方法。

  1. 使用一個很好的測井方法(你已經)
  2. 在錯誤發生時有用戶向您發送報告(您已經有報告)
  3. 檢查報告爲儘可能多的用戶計算機設置,儘可能
  4. 檢查堆棧跟蹤並查看代碼中錯誤發生的位置或最後一次調用代碼的位置。
  5. 如果您仍然無法找到或複製錯誤,請在您的版本控制系統中創建一個新的應用程序分支。在該分支中,增加在堆棧跟蹤中標識的地點的日誌記錄。儘可能地記錄日誌。發送用戶這個版本。
  6. 等待下一個用戶報告。
  7. 重複此過程並嘗試記錄更多,並可能在必要時擴大重的半徑。

如果您有時間還可以與用戶交談。這種方式有時他們告訴你重要的新信息可以幫助你。

我在上週左右有兩個令人討厭的bug。我剛開始有條不紊地走向目標。當我拿起錯誤的氣味時,只是時間問題。我發現如果你有條不紊,遲早你會找到原因。