1. 程式人生 > >關於VS除錯時的載入符號

關於VS除錯時的載入符號

      前兩天安裝了VS2017,隨便寫了幾行程式碼測試下,發現除錯時要有一大堆的載入符號,像【已載入“D:\SogouInput\Components\PicFace\1.1.0.1781\PicFace.dll”。無法查詢或開啟 PDB 檔案。】,個人比較小白,不懂這些載入符號是什麼意思有什麼用,於是上網查了下。網上給出的資訊比較雜,經過一番總結歸納,得出下面的結論(也許是錯的,望大神指教):符號,也叫作PDB檔案(符號檔案),裡面包含的都是我們的原始碼資訊,比如變數名、函式名等等。這些符號檔案的主要作用,是在我們寫的原始碼檔案和編譯後的二進位制可執行指令間,生成爸爸配兒子的對應關係,是為了除錯用的。比如我們在原始碼檔案中的某一行設定了一個斷點,那麼編譯器會根據這種對應關係,在二進位制可執行指令堆中找到這個斷點對應的正確位置並設定好。

      那麼我為什麼會心血來潮搜尋符號呢?這是因為我以前用VS2015時,除錯程式碼時按下F5能很快進行,但試用17時卻發現這個載入符號似乎佔用了不少時間,這讓我不爽。於是查查載入符號有什麼用是否可以關閉。網上給出的建議是可以關閉但不建議。我先說怎樣關閉吧:點選【工具】》【選項】,在彈出的框中再點選【除錯】》【符號】,再把【Microsoft符號伺服器】前面的√去掉,最後點選【確定】即可,如下圖所示:


      當我這樣做以後,我發現我依然可以給程式設定斷點,依然可以進入反彙編。這我就有點不懂了,也許是因為主要的符號模組是預設必須載入的,也許是別的原因;如果有大神知道,還望大神費神科普,非常感謝。

相關推薦

VS2013程式碼除錯:如何避免除錯載入符號

在利用VS2013進行程式碼除錯時,當電腦接入網路後系統會自動從Microsoft 符號伺服器載入PDB符號檔案。此載入符號過程使得除錯變得非常慢。那麼如何避免VS2013除錯時載入符號呢?方法步驟如下:1.用VS2013開啟程式碼檔案,按下F5進行除錯,可以看到系統會自動載入符號,而且此除錯過程較為緩慢。2

關於VS除錯載入符號

      前兩天安裝了VS2017,隨便寫了幾行程式碼測試下,發現除錯時要有一大堆的載入符號,像【已載入“D:\SogouInput\Components\PicFace\1.1.0.1781\PicFace.dll”。無法查詢或開啟 PDB 檔案。】,個人比較小白,不

VS 除錯“還沒有為該文件載入任何符號

有的時候除錯會出現這種問題: 然後斷點就不會中斷了。 解決方案: 比較常見的是 1.工具->選項->除錯->常規->要求原始檔與原始版本完全匹配的勾取消。 2.嘗試重新編譯專案 , 因為專案未重新編譯過的話其中更改的程式碼就不會生效(這種情況主

C#+WCE 程式在除錯載入的斷點無法除錯

通過網上資料該文章 http://www.cncvs.com/html/bencandy.php?fid=5&aid=22 問題解決。 主要問題是:WCE 上面安裝的.NET框架與C#編譯時的要安裝的框架版本不匹配。   在WCE上面把已經安裝好的.NET框架解除安

vs2010 除錯程式載入符號

前提:之前為了除錯成功在機器上安裝了windlg程式並設定了 _NT_SYMBOL_PATH 環境變數 之後用vs2010除錯成功,看狀態列一直在載入很多符合,還很慢 解決方法: 到環境變數裡:刪除_NT_SYMBOL_PATH 變數 重啟電腦,解決

VS除錯找不到dll或exe的方法

1、採用附加到程序的方法    :  除錯-> 附加到程序 (在下面的列表框中選擇要除錯的程式) 2、若更改了預設的生成路徑或生成檔名(a.exe改成了b.exe)則可以在工程屬性中進行設定:       右鍵工程-> 屬性-> 配置屬性-> 除錯-

VS除錯監視/檢視全域性變數

最近同事在除錯一個十多年前就開始寫的程式,在VS下基於MFC的專案,其中使用了部分全域性變數,現在需要在原來的基礎上增加新的功能,問我能不能用直接在Watch視窗直接檢視全域性變數值,他的方法是把全域性變數賦值給區域性變數再檢視,由於多個位置需要就得新增很多的程式碼,除錯

魚與熊掌不可兼得!VS除錯拒絕訪問的原因探究

今天在用VS2013進行程式碼除錯的時候,執行除錯時突然出現了下面的錯誤: 重新構建、刪除exe重新構建,都不能出現問題,上網查了一下,又要重灌VS又要重灌系統的,我覺得一定不是解決問題所在。 這時,突然看到有個網友回覆說下了dnf導致的,我恍然大悟,這不就是騰訊反外掛程

VS除錯斷點不被命中(breakpoint will not correctly be hit)問題的一種原因

除錯時發現vs中斷點不能被命中,開始時未發現原因。現象:1、每次重新編譯dll也不能正確設定斷點。2、重啟電腦後再編譯可以正確使用,修改後編譯有又不可使用。3、檢視dll、pdb檔案發現都是最新的。原因:除錯時使用的程式碼確實使用的不是最新的dll。在其他dll中引用了此dl

VS除錯無法載入PDB 檔案解決辦法

VS除錯時出現錯誤後一般會中斷,跳到使用者程式碼處,然後根據呼叫堆疊就能分析相應的問題。但有時點選中斷後直接提示某某PDB檔案無法載入,這情況下要查詢問題就非常麻煩了。 解決方法: 載入相關符號檔案就可以。(以VS2015為例,其他版本同理) 選單欄->除錯

正在從以下位置載入符號 VS 除錯非常慢

前兩天突然出現了一個.net未知異常的除錯詢問? 是否啟動VS例項進行除錯, 我選擇了除錯. 然後我自己的專案除錯一下就變得非常慢了. 一直出現 ”正在從以下位置載入xxxxxx符號” 一個個載入, 非常慢. 往常啟動除錯 幾秒鐘就把這些載入好了. 但是現在幾

visual studio2017 除錯出現:“Project1.exe”(Win32): 已載入“D:\workplace\Project1\Debug\Project1.exe”。已載入符號

visual studio2017 除錯時提示以下問題:參考連結:  http://blog.csdn.net/win_turn/article/details/50468115具體步驟如下:1、點 除錯按鈕,然後選擇  選項和設定2、勾選  啟用源伺服器支援3、點選左側符號

VS除錯提示:無法找到“*.exe”的資訊,或除錯資訊不匹配。未載入符號

一、 網上找的方法如下 1。選擇 配置屬性->連結器->除錯->生成除錯資訊 改為 是 2。選擇 配置屬性->C/C++ ->常規->除錯資訊格式 改為 用於“編輯並繼續”的程式資料庫(/ZI) 3。選擇 配置屬性->C/C++ ->優化->優

vs除錯dll 當前不會命中斷點 還沒有為該文件載入任何符號

最後想到,出現這個問題的原因基本上有兩個:         一、要除錯的dll不在除錯程序的程序空間,調不到,也就是該dll還沒有被載入進exe內。即exe還沒有使用到dll呢,當然不會載入該dll到exe的程序空間中         二、原始碼使用的dll與除錯的原

動態載入的js檔案在Chrome進行除錯找不到

有時候由於各種原因需要動態載入js檔案,如: $('body').append("<script type='text/javascript' src='./editor.js'><\/script>"); 這時候入如果想對剛加進去的js檔案進行除錯的話,會發現找不到

VS code 進行 flutter 除錯啟動後就停止,無法除錯的問題

      在編寫flutter時,更新需要按 r 或著 R,這就有點麻煩,當然強大的VS code給我們提供了自動更新的功能,那就是除錯功能。 在VS code的左邊圖示中有一個小蟲子的圖示,點選即可進行除錯,如果我們直接點選除錯的綠色開始按鈕,除錯會啟動幾秒就自動停止

VS2012顯示“已載入符號”等除錯資訊的關閉方法

在用VS除錯時總有些亂糟糟的除錯資訊,特別煩人,如: *“MainWindow.exe”(Win32): 已載入“F:\experiment\multimedia2\MainWindow\Win32\Debug\MainWindow.exe”。已載入符號。

vs2017開發安卓應用使用逍遙安卓之類的模擬器除錯vs除錯列表裡沒有模擬器的解決辦法

開啟vs的adb命令列,如果使用的逍遙安卓,執行如下命令(如果是其他模擬器把相應埠換掉就行了,如果adb devices提示模擬器離線,重啟下模擬器再重新connect即可):adb connect 1

如何使用vs除錯檢視記憶體

1.      除錯必須要在Debug狀態下進行! 2.想要檢視記憶體,區域性變數等視窗的話,首先要確保在除錯狀態下(按F5或者按本地windows 偵錯程式)進行,然後點選除錯-》視窗-》記憶體即可;然後彈出一個視窗1,如下 3.下面講解怎麼看這個記憶體: i

VS2010除錯程式啟動載入程式非常慢的

在win7上使用VS2010編譯某程式無誤後,然後以release態並可輸出除錯資訊時除錯程式。console視窗也出現了,但是載入相關資訊是特別慢。並出現如下資訊: win32.exe': Loa