日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

vs2015开发c语言 简书,微软符号服务器_NT_SYMBOL_PATH给VS调试带来的隐藏坑

發(fā)布時間:2023/11/27 生活经验 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vs2015开发c语言 简书,微软符号服务器_NT_SYMBOL_PATH给VS调试带来的隐藏坑 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

昨天我碰到一個非??拥膯栴},問題是這樣的:

我機子上已經(jīng)裝了vs2015和vs2010,vs2010和vs2015都跑得很溜,沒有啥異常現(xiàn)象。然后昨天我不知哪里來的突然想法:機子上有些資源需要打包收藏,便于后面自己使用。于是乎我就安裝了vs2008,分別是以下幾個文件

vs2008安裝包示意圖

安裝順序如圖上所標。安裝過程中倒是自己做了一些偷工減料:就是我打開著vs2010正在寫代碼,同時在安裝vs2008,這時候在安裝過程中就會提示我vs需要關閉,此時我再去選擇關閉,但是一旦提示過后我又偷偷打開了vs2010,咳,因為安裝過程實在太久了。好,就這樣安裝了2008,之后我就繼續(xù)開始調(diào)試我的代碼了。神奇的一幕就發(fā)生了:

我的vs2010突然之間加載pdb非常慢。表現(xiàn)是我通過ide界面上的debug按鈕點擊調(diào)試,程序啟動,就當加載到每個dll的時候,程序就卡住了,而且是卡在了加載本地dll。你說嘛,要是加載windows dll卡住也就算了,因為我確實配置了windows符號svr來拉取。但是一會想也不對啊,windows所有本地的符號我都是拉取過的,之前一直都沒有這個問題,怎么會現(xiàn)在突然有這個問題呢,更何況是在加載本地的dll的時候卡住的,更是想不通啊!!我轉念一想,是不是vs此時怪異抽筋啊,于是乎我想起了幾個絕招,絕招中的絕招:vs重啟,電腦重啟。但是殘酷的現(xiàn)實告訴我仍然是無效。算呢,可能是今天電腦怪異,硬盤說來也跑了很多天了,明天再來吧。

第二天我過來,問題仍然依舊。這回真沒有辦法了,得硬著頭皮搞啊,要不沒有辦法干活啊,于是乎我重現(xiàn)了現(xiàn)場,拿起我的windbg來進行attach跟蹤,得到如下堆棧

windbg跟蹤vs加載符號卡死堆棧

基本上確定是在vsdebug.dll里面執(zhí)行UpdateInfo卡住了,而且是卡在了sta網(wǎng)絡com調(diào)用,com調(diào)用啊,既激動有懊惱,激動的是剛好最近在深入com底層了解,懊惱的是還是不知道為什么。好吧,我已經(jīng)是窮途末路,找了同事一起來看看,最終我們根據(jù)匯編定位到是在等待一堆的event事件回來,但仍然是無果,因為也解決不了問題。就這樣上午仍然無果

下午了,實在沒有辦法了,只能慢慢等吧。不甘心,于是乎死馬當活馬醫(yī),卸載vs2008,反正目前來看定位是昨天裝完2008是不是安裝過程不標準,或者2008在我這個機子上有問題導致的,畢竟是裝完后出現(xiàn)的,但是黃天總是喜歡開歡笑,仍然卸了又泄,把windows更新都卸載了,依然無果。算了,算了,進行第二步定位:

是不是工程有問題,是不是只有vs2010有問題,從這兩步去定位

1、我新建一個簡單工程,mfc的,試了,跑得很溜啊,尼瑪,難道是我的工程自己出的問題。好吧,突然想起之前邪惡的ncb和suo文件,于是乎把他們刪除了,問題依舊。是不是我的工程太舊太古老了,生成了一堆垃圾后工程被損壞了問題,于是我重新編譯了另一個工程,尼瑪,仍然問題依舊。沒轍,沒有辦法懷疑工程吧

2、使用2015來編譯試試,此時一個轉機出現(xiàn)

vs2015拉取微軟將服務器符號示意圖

此時的我瞬間恍然大悟,尼瑪,

1、原來他任何時候都在從windows服務器加載

2、windows符號本地有了還仍然去svr查找

3、微軟服務器符號加載如此之慢,竟然有時快有時慢!!!

好吧,坑了我一天的惡心bug,只要去除掉全局變量中的全局微軟符號svr配置,即可

從這里我得出了兩個教訓:

1、以后別再相信_NT_SYMBOL_PATH這個符號的可靠性了,微軟符號服務器有時好有時壞這個才是最大的坑(事實證明不是這個問題,我得出了錯誤的結論)

2、一定要隨手準備一個網(wǎng)絡監(jiān)聽工具包,隨時觀測來自網(wǎng)絡的坑爹等待

補注:后和同事溝通,是symsrv.dll有些版本有bug,目前得知的情況是只有6.2這個版本才是好的,其他版本有bug

symsrv.dll6.2版本

導致了這個問題有些情況下會出現(xiàn)有些情況下不會出現(xiàn),

我出問題的版本是

vs2015隨身帶的版本

symsrv.dll2015版本

vs2010隨身帶的版本

作者:fishmai0

鏈接:https://www.jianshu.com/p/bd82ba4f0a1a

來源:簡書

著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。

libaineu2004

發(fā)布了460 篇原創(chuàng)文章 · 獲贊 535 · 訪問量 325萬+

他的留言板

關注

標簽:符號,windows,SYMBOL,vs2010,dll,問題,VS,PATH,加載

來源: https://blog.csdn.net/libaineu2004/article/details/104109786

總結

以上是生活随笔為你收集整理的vs2015开发c语言 简书,微软符号服务器_NT_SYMBOL_PATH给VS调试带来的隐藏坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。