2016-02-03 29 views
17

我有一個VB6項目,並已啓用它生成pdb文件(this顯示如何做到這一點)。不過,我不能與他們進行調試,當我與symcheck檢查他們,我得到這樣的輸出:爲什麼我的PDB的我的VB6項目不匹配生成的DLL?

Symchk的:MyFile.dll失敗 - MyFile.pdb不匹配或沒有發現

Symchk的:失敗的文件= 1

Symchk的:傳遞+忽略的文件= 0

我已經詳細輸出其找到PDB(甚至將它移動到一個目錄,它的檢查)檢查,但它只是似乎沒有想要匹配。

什麼可能導致這種情況,我該怎麼辦?

+0

嘗試一個較老的windbg/symchk版本。我認爲多年來MSFT更新了PDB格式,也許新版本無法從VB6中理解舊格式。 – magicandre1981

+0

你有沒有試過我的建議,並使用較舊的調試版本? – magicandre1981

+0

可能是用戶身份問題? –

回答

0

我遇到了與Visual Studio相同的問題(它在C#項目上)。由於您沒有提供有關您的環境設置的許多信息,因此很難確定問題的確切原因。

因爲我沒有使用Visual Basic IDE的經驗,所以我會提出Visual Studio問題的原因。根據您的項目和設置,這可能適用於或不適用於您的VB IDE。試着將它們應用到它。

所以這裏是一個可以與Visual Studio是造成這種現象的潛在問題非詳盡的列表:你的程序中使用

  1. 這些dll緩存那些
    • 如果你的可執行文件會發生這種情況正在使用dll的緩存版本(這也稱爲影複製)。這些文件通常位於臨時文件夾中。 要解決這個問題,必須簡單地刪除這些臨時文件。
  2. 你的調試器試圖在錯誤的地方
    • 例如Visual Studio可以被設置在一個特定的地方來加載模塊加載模塊和符號。
      爲了修正它具有一個固定在那裏模塊被加載的地方(Ctrl鍵 + d + 中號通常)。
  3. 您的清理/重建操作只重建輸出項目。
    • 當您想要重建所有解決方案時,Visual Studio可能只重建您的輸出項目。
      要解決它,必須檢查它是否正確地重建整個解決方案。
      請注意,您的清理操作可能不會刪除項目引用但與其無關的引用。這些文件將保留在輸出文件夾中,直到您將其刪除。
  4. Visual Studio已進入不穩定狀態,可能需要重新啓動。
    • 我沒有更多的次數,我的Visual Studio實例的簡單重新啓動修復了大部分奇怪的編譯時行爲。
      要解決這個問題,必須重新啓動Visual Studio。

通常一種防彈的路要走,當你遇到這樣的是:

  • 清潔液
  • 刪除每個項目
  • 的每一個bin和OBJ文件夾
  • 刪除用於卷影副本的任何臨時文件夾
  • 執行重建
相關問題