簡體   English   中英

為什么Visual Studio 2010無法查找/打開PDB文件?

[英]Why is Visual Studio 2010 not able to find/open PDB files?

我試圖在VS 2010中使用OpenCV。我是業余愛好者,我正在學習OpenCV維基的第一步。 但是,在嘗試調試我的項目時,我收到以下錯誤:

'C:\\ Windows \\ SysWOW64 \\ ntdll.dll',無法找到或打開PDB文件'C:\\ Windows \\ SysWOW64 \\ kernel32.dll',無法找到或打開PDB文件'C:\\ Windows \\ SysWOW64 \\ kernellbase。 dll',無法找到或打開PDB文件

我在正確的目錄中有這些文件,為什么不能打開它們呢? 我該怎么做才能解決這個問題?

首先更改以下參數:

工具 - >選項 - >調試 - >符號 - >服務器 - >是

然后按Ctrl + F5 ,您將看到驚人的東西。

我很確定這些是警告 ,而不是錯誤。 你的項目應該運行得很好。

但是,由於您應該始終嘗試修復編譯器警告,讓我們看看我們能發現什么。 我對OpenCV並不熟悉,也沒有鏈接到你所關注的wiki教程。 但它在我看來問題是你運行的是64位版本的Windows(由DLL文件路徑中的“SysWOW64”文件夾證明),但是你正在嘗試的OpenCV內容是對於32位平台。 所以,你可能需要重建使用C進行的項目,如解釋在這里

更具體地說,列出的文件是Windows系統文件。 PDB文件包含Visual Studio用於允許您進入和調試已編譯代碼的調試信息。 實際上,您不需要系統庫的PDB文件來調試自己的代碼。 但是如果需要,您也可以下載系統庫的符號 轉到“調試”菜單,單擊“選項和設置”,然后向下滾動右側的列表框,直到看到“啟用源服務器支持”。 確保選中該選項。 然后,在左側的樹視圖中,單擊“符號”,並確保選中“Microsoft Symbol Servers”選項。 單擊“確定”關閉對話框,然后嘗試重建。

Visual Studio Community Edition 2015

整天都有這個錯誤。 我最后通過工具>導入和導出設置>重置所有選項>重置常規設置來修復它。

重置后,轉到工具>選項>調試>符號> - 然后選中Microsoft符號服務器旁邊的復選框。

在調試模式下運行你的應用程序,它將打開窗口,說它正在為一堆不同的.dll文件下載符號。 讓它完成這個。

一旦完成,它應該再次工作。

我有同樣的問題。 事實證明,編譯我從其他人那里獲得的項目時,我沒有設置正確的StartUp項目(在解決方案資源管理器中右鍵單擊所需的啟動項目並選擇“set as StartUp Project”)。 也許這會有所幫助,干杯。

參考第一個線程/另一個可能性VS無法打開或找到該進程的pdb文件是當您在后台運行可執行文件時。 我正在使用mpiexec並遇到了這個問題。 始終檢查您的任務管理器並終止您將在項目中構建的任何exec進程。 一旦我這樣做,它調試或建立良好。

此外,如果您嘗試繼續警告,則不會命中斷點,也不會有當前的可執行文件

對於像我一樣發現自己的VS2013用戶:

Tools -> Options -> Debugging -> Symbols

您將看到Cache symbols in this directory:中的Cache symbols in this directory:字段為空; 您可以自己瀏覽/輸入路徑,也可以直接單擊“ Load all symbols按鈕。 將出現一個警告窗口,指出“由於您未選擇符號緩存目錄,因此將使用默認值”。 您現在將在之前為空的路徑字段中看到C:\\Users\\XXXX\\AppData\\Local\\Temp\\SymbolCache 單擊第二次Load all symbols ,您應該進行設置。 點擊確定,只是為了勤奮,清理並重建您的解決方案。

我有同樣的警告。 我不確定這是32比64比特的問題。 只是加載了新符號並解決了一些問題,但是關於OpenCV的問題仍然存在。 這是輸出的解壓縮與未解決的問題:

'OpenCV_helloworld.exe':加載'C:\\ OpenCV2.2 \\ bin \\ opencv_imgproc220d.dll',無法找到或打開PDB文件

'OpenCV_helloworld.exe':加載'C:\\ WINDOWS \\ system32 \\ imm32.dll',加載符號(刪除源信息)。

如果有人要求,代碼退出0。

程序'[4424] OpenCV_helloworld.exe:Native'已退出,代碼為0(0x0)。

我有同樣的問題。 調試不適用於OpenCV可執行文件附帶的東西。 你必須建立自己的二進制文件。
然后在Debug-> options和settings-> debug-> symbols中啟用Microsoft Symbol Servers

我遇到了同樣的問題。 當我在C ++代碼上運行單元測試時,我收到一條錯誤消息“無法找到或打開PDB文件”。

日志

當我在Visual Studio中查看輸出日志時,我看到它正在查找錯誤的文件夾。 我已經重命名了WinUnit文件夾,但WinUnit代碼中的某些內容是使用舊文件夾名稱查找PDB文件。 我猜他們硬編碼了。

找到了問題

當我第一次下載並解壓縮WinUnit文件時,主文件夾名為“WinUnit-1.2.0909.1”。 解壓縮文件后,我將文件夾重命名為“WinUnit”,因為在Visual Studio項目設置期間更容易輸入。 但顯然這打破了查找PDB文件的能力,即使我根據WinUnit文檔設置了所有內容。

我的修復

我將文件夾名稱更改回原始文件,它可以正常工作。

奇怪的。

這里有同樣的問題但是有一個不同的解決方案。

首先,我嘗試了以下方法,其中沒有一個有效:

  1. 按照seanlitow的建議加載符號

  2. 刪除/添加對PresentationFramework和PresentationCore的引用

  3. 重啟系統

解決方案是撤消我對代碼所做的最后幾次更改。 我剛剛為已檢查和未檢查的事件添加了幾個單選按鈕和事件處理程序。 刪除我最近的更改后,所有編譯。 然后我添加了我的確切更改,並正確編譯了所有內容。 我不明白為什么這樣做 - 我能想到的只是我的VS解決方案的一個問題。 無論如何,如果其他建議都不起作用,您可以嘗試恢復最近的更改。 注意:如果您關閉並重新打開Visual Studio,則撤消歷史記錄將丟失..因此您可以在關閉VS之前嘗試此操作。

我發現這些錯誤有時是因為編譯項目時缺少權限 - 因此我以管理員身份運行以使其正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM