1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          pdb是什么文件格式_pdb文件有什么用

          來源:互聯網轉載 時間:2024-01-27 21:06:00

          pdb是什么文件格式?pdb文件有什么用?下面小編就給大家分享下什么是PDB格式文件。

          PDB(Program DataBase),全稱為“程序數據庫”文件,是VS編譯鏈接時生成的文件。DPB文件主要存儲了VS調試程序時所需要的基本信息,主要包括源文件名、變量名、函數名、FPO(幀指針)、對應的行號等等。因為存儲的是調試信息,所以一般情況下PDB文件是在Debug模式下才會生成。

          PDB文件中記錄了源文件路徑的相關信息,所以在載入PDB文件的時候,就可以將相關調試信息與源碼對應。這樣可以可視化的實時查看調試時的函數調用、變量值等相關信息。模塊當中記錄的PDB文件是絕對路徑。所以只要模塊在當前電腦上載入,調試器自然地會根據模塊當中的路徑信息找到相應PDB文件并載入。同樣PDB文件中記錄的源文件路徑也是絕對路徑,所以PDB文件只要在當前電腦上載入,調試進入相應模塊時,都能夠匹配到記錄的源文件,然后可視化地查看相應信息。

          PDB文件什么時候產生?

          PDB文件是在我們編譯工程的時候產生的,它是和對應的模塊(exe或dll)一起生成出來的。我們一般可能不會意識到PDB文件的重要性,因為如果只是我們本地進行開發,我們總是能夠進行調適。這里我要引入兩個概念:Private Build和Public Build1。Private Build指的是在開發機器上的編譯,Public Build指的是在負責編譯的機器上的編譯。

          正如上面我所說Private Build一般不會有問題,因為在編譯出來的機器上進行調試所有必要的文件都在該在的地方。所有大部分不能調試的問題都發生在Public Build的情況下。

          如果你的應用程序需要發布或者當作產品賣得,你就需要特別注意要保存你發布出去的那個版本的PDB文件和源文件。

          注意:你只有一次機會保存著發布出去的PDB文件,如果你弄丟了將無法找回。(原因下面說明)<當然使用Reflector 類似的工具去調試也是可以的>

          為什么PDB這么重要?

          也許你會認為如果拿一份一模一樣的源代碼重新編譯一個PDB文件,然后用來調試就行了。我也曾經這么認為過,直到有一天…......

          直接的原因是因為VS生成出來的二進制文件的Header部分里面包含了它對應的PDB的GUID,PDB也包含一個GUIID,這兩個GUID實在編譯的時候添加進去的。VS調試器在載入PDB的時候會去比對這個兩個GUID,如果不一致,那么就不能使用。

          當然上面那個原因只是一個表面現象,根本原因是既是兩份一模一樣的代碼編譯器編譯出來的文件可能是不一樣的。因為編譯器在編譯的時候會對代碼進行優化,而同一份代碼可能會有很多種優化的方法,它會根據當時的具體機器的環境等情況選擇一個最快的生成方法。所以它生成出來的文件有可能是不一樣的!所以如果連生成出來的文件都不一樣,那么原來的那個PDB里面的符號對應的地址也就沒有意義了。

          如何查看二進制文件和PDB的GUID?

          使用VS自帶的DUMPBIN工具可以查看二進制文件所期望的PDB的GUID?;居梅ň褪荄UMPBIN /HEADER 文件,具體用可可參考MSDN(http://msdn.microsoft.com/zh-cn/library/c1h23y6c(v=vs.80).aspx)。

          查看PDB的GUID可以用下面這個工具,直接將PDB拉進去即可。

          http://www.codeproject.com/Articles/37456/How-To-Inspect-the-Content-of-a-Program-Database-P

          PDB文件的查找策略

          先上試驗結果,可以再調試的時候從Visual Studio 的Module串口中查找到一個module的symbol的查找策略。從截圖中我們可以看到結果如下:

          1、文件被執行或者被載入的地址

          2、 就是硬編碼在PE文件頭中的那個地址。大家可以看到obj\<config>才是最原始生成的地址,只是之后被拷貝到了第一個地址中去了。

          3、 如果配置了符號服務器,第二步以后應該先去符號服務器的緩存目錄下找,如果找不到再去符號服務器上去找。找到的話就會下載到緩存目錄。

          4、 第三部分是我VS中設置的一些符號查詢的目錄,因為我裝過Reflector所以默認加了這幾個目錄在我的設置中。

          5、Windows文件夾。

          這里有一個比較有意思的現象就是,VS的查找策略都是會先找一個目錄下的symbol\exe\project.pdb,然后exe\project.pdb,最后才找project.pdb。這個順序有點出人意料。

          PDB文件會影響性能么?

          可能有些人會覺得PDB文件的生成會對最終的應用程序的性能產生一定的影響,所以覺得在發布版中不應該生成PDB文件。

          錯!對于.NET應用程序來說,生成PDB文件不會影響編譯器的優化,所以也完全不會影響應用的性能。只會對于生成的程序集中的一個DebuggableAttribute的屬性產生影響。

          擴展知識:

          PDB文件是Palm OS操作系統上數據文件類型。一般在使用Palm系統的電子書時都會遇到這種文件,一般用于電子書或手機電子書 pdb是Palm DataBase的縮寫,Palm OS所用文件的擴展名為“。pdb”。

          PDB文件是在編譯工程的時候產生的,它是和對應的模塊(exe或dll)一起生成出來的。pdb文件可以使用一些特有的pdb閱讀器打開。如果想把PDB文件轉換成TXT文件查看,可以使用專用轉換器轉換。


          標簽:pdb是什么文件-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          Switch怎么使用gba卡帶?開關can t用gba卡帶,gba游戲卡有自己的游戲機用,switch也有自己的游戲卡帶,what 此外,這兩個游戲磁帶是不一樣的。gba卡帶的尺寸比開關卡帶大,而gba卡帶是金屬包裹塑料制成的。萬一讀取失敗,可以在插入口吹氣,因為月初灰塵太多,無法讀取。小神游sp掌機開機不讀卡?1 .有可能是編程設備松了,沒插緊。2.你刻錄的文件在*。RAR格式,所以刻錄前需...

          天津到深圳的機票多少錢?打幾折?一般機票1000元左右。如果是晚上,可能會有300元左右的特價機票。具體來說,你得開一家航空公司。從天津到深圳坐飛機大概多錢?天津到深圳全價1850,全程飛行約3小時10分鐘。北京到深圳全價1750,全程飛行時間和天津一樣。天津機場有到深圳寶安機場的航班嗎?天津機場到深圳寶安機場都有航班。1.天津作為四大直轄市之一,也是重要的進出口城市,而深圳作為社會主義第一示范區...

          巫妖王棱彩插槽能用什么寶石?你可以使用這三種寶石:1.致命深海琥珀、精致女王蛋白石、迅捷阿祖內特黃玉、萬能蒼穹四種強化屬性寶石,具有增加強化屬性(暴擊、熟練度、迅捷、全能)150點的效果。2.擁有高級強化屬性的寶石,包括致命先知之眼,玲瓏暗影紫玉,迅捷晨光石,具有提升強化屬性(暴擊,熟練度,迅捷)250點的效果。3,豹眼石,增加主屬性(敏捷,智力,力量)200點。PS:全身只能插一顆寶石。夢幻西游...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>