青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

符號文件——Windows 應用程序調試必備

一、何謂符號文件?

  符號文件(Symbol Files)是一個數據信息文件,它包含了應用程序二進制文件(比如:EXEDLL等)調試信息,專門用來作調試之用,最終生成的可執(zhí)行文件在運行時并不需要這個符號文件,但你的程序中所有的變量信息都記錄在這個文件中。所以調試應用程序時,這個文件是非常重要的。用 Visual C++ WinDbg 調試程序時都要用到這個文件。
  在 Windows 系統(tǒng)中,符號文件以 .pdb 為擴展名,比如:每個 Windows 操作系統(tǒng)下有一個 GDI32.dll 文件,編譯器在編譯該 DLL 的時候會產生一個 GDI32.pdb 文件,一旦你擁有了這個 PDB 文件,那么便可以用它來調試并跟蹤到 GDI32.dll 內部。該文件和二進制文件的編譯版本密切相關,比如修改了 DLL 的輸出函數,再編譯該 DLL,那么原先的 PDB 文件就過時了,不能再用老的 PDB 文件來做調試工作,而必須使用最新的 PDB 文件版本。
  Visual C++ 編譯代碼后會在 Debug 或者 Release 目錄下生成一個 PDB 文件。一般情況下,符號文件包括以下的數據信息:

  1. 全局變量(Global variables);
  2. 局部變量(Local variables);
  3. 函數名和它們的入口地址(Function names and the addresses of their entry points);
  4. FPO 數據(Frame Pointer Omission)Frame Pointer 是一種用來在調用堆棧(Call stack)中找到下一個將要被調用的函數的數據結構源代碼的行序號(Source-line numbers);

二、如何得到和安裝符號文件?

  1. 先確定你的操作系統(tǒng)(OS)版本;
  2. 到微軟網站下載相應的符號文件;
  3. 安裝符號文件,對于符號文件的安裝位置沒有特貝要求,可以安裝在任何目錄中;
  4. 設置環(huán)境變量,使得調試工具(比如:Visual C++WinDbgNtsdDrWatson 等)能找到符號文件;

安裝符號文件的注意事項:

  如果是手動安裝符號文件,有一點很重要,那就是宿主機(Hostt Computer)上的符號文件必須與目標機器(Target Computer)上的 Windows 版本相匹配。
  這里所謂的宿主機指的是運行調試會話的機器,在典型的雙系統(tǒng)調試會話環(huán)境中,宿主機可以是連接到目標機器的任何機器。目標機器指的是發(fā)生軟件組件、系統(tǒng)服務、應用程序或操作系統(tǒng)運行失敗的機器。也即是需要被調試的機器,它是調試會話關注的焦點。目標機器可以近在咫尺,也可以位于完全不同的地方。有時我們也將目標機器稱之為——被調試者(debuggee),那么與之對應,宿主機則可以稱為調試者(debugger)。

三、在 Visual C++ 使用符號文件的方法

Visual C++ 6.0 中的使用方法:

  1. 打開 Visual C++ 6.0 Workspace 文件(*.dsw);
  2. 進入 Tools 菜單,選擇 Options 菜單項 (Tools->Options)
  3. 單擊 Directoties 標簽;
  4. “Show directories for”下拉列表中選擇 “Executable files”
  5. 將符號文件的路徑添加到 “Directories” 路徑列表中;
  6. 單擊  OK 完成;

Visual C++ .NET 2003 中的使用方法:

  1. 打開 Visual C++ .NET 的項目文件(*.vcproj);
  2. 在解決方案管理器中選中要使用符號文件的項目;
  3. 單擊右鍵進入項目屬性對話框;
  4. 選擇配置屬性中的調試
  5. 在與調試對應的操作選項中有一個符號路徑,在此添加符號文件的路徑即可;
  6. 單擊  “確定完成;

四、如何產生 Release 版本二進制文件對應的 PDB 文件?

Visual C++ 6.0 中的方法:

  1. 打開 Visual C++ 6.0 Workspace 文件(*.dsw);
  2. 進入 Project 菜單,選擇 Settings 菜單項 (Project->Settings),打開項目設置對話框;
  3. “Settings for”列表中選擇項目的 Release 配置;
  4. 單擊“C/C++”標簽;
  5. “Category”下拉列表框中選擇“General”選項;
  6. “Debug info”下拉列表框中選擇調試信息格式(具體選項參見圖一),在此不必禁用任何優(yōu)化選項;
  7. 單擊“Link”標簽;
  8. “Category”下拉列表框中選擇“Debug”選項;
  9. 選中“Debug info”復選框,然后選擇需要的鏈接調試類型(具體選項參見圖一);
  10. 不要選擇“Separate types”復選框;
  11. “Project options”編輯框的最后添加如下指令:/opt:ref,icf
  12. 重新生成(Rebuild)項目;

Visual C++ .NET 2003 中的方法:

  1. 打開 Visual C++ .NET 的項目文件(*.vcproj);
  2. 進入 Project 菜單,選擇 Settings 菜單項 (Project->Settings),打開項目設置對話框;
  3. 配置下拉列表中選擇項目的(活動)Release” 配置;
  4. 選擇配置屬性樹型節(jié)點中的“C/C++” ==常規(guī)
  5. 設置右邊的調試信息格式選項(具體選項參見圖一);
  6. 選擇配置屬性樹型節(jié)點中的鏈接器”==調試
  7. 設置右邊的生成程序數據庫文件(具體選項參見圖一);
  8. 選擇配置屬性樹型節(jié)點中的鏈接器”==命令行
  9. 附加選項(D)”編輯框中添加如下指令:/opt:ref,icf
  10. 確定退出;
  11. 重新生成(Rebuild)項目;

clip_image001

圖一

五、關于 Free Build(也稱 Retail Build)和 Checked Build(也稱 Debug Build

每個基于 NT 操作系統(tǒng)有兩種不同的程序生成模式,即:

  • Free Build ( Retail Build)
  • Checked Build ( Debug Build)

  Free Build 生成的是最終用戶版本,針對生成的二進制文件進行了徹底的優(yōu)化,禁用了調試斷言,并剝離了調試信息。這樣一來使可執(zhí)行程序文件更小,加載更快,使用的內存也更小。
  Checked Build 生成的是測試和調試版本。它包含額外的 Free Build 所沒有的錯誤檢查,參數驗證和調試信息,Checked Build 有助于隔離和跟蹤可能導致不可預見的行為的問題,比如內存溢出,不正確的設備配置。雖然 Checked Build 提供了額外的保護,但與 Free Build 比較,它需要更多的內存開銷和磁盤空間。由于可執(zhí)行程序包含符號調試信息;調試時要執(zhí)行附加的代碼、參數檢查和輸出調試診斷信息,從而導致性能下降。

六、系統(tǒng)符號文件的更新方法

  系統(tǒng)符號文件指 Windows 操作系統(tǒng)依賴的那幾個重要的 DLL/SYS 和可執(zhí)行文件對應的符號文件,常見的比如:gdi32.dllKernel32.dllKerberos.dllpsapi.dlluser32.dll等,使用 WinDbg 調試時,你就會發(fā)現(xiàn)系統(tǒng)符號文件(PDB)有多重要,這些文件都與本地的 OS 密切相關,比如,Windows 2000 打了SP補丁的話,那么必須更新系統(tǒng)符號文件才能進行相關調試,原來的符號文件與打補丁后的系統(tǒng)就會不匹配,怎么辦呢? 可以通過網絡來更新!象下面這樣在 WinDbg Symbols Path 里面輸入路徑:

SRV*D:\Symbols\websymbols*http://msdl.microsoft.com/download/symbols

(斜體部分是你在本地保存符號文件的路徑)

  如果你不是通過代理上網,那么在你用 WinDbg 打開一個被調試程序后,輸入 symchk 回車,WinDbg 就會自動的連到微軟的網站根據你的機器的情況更新的 PDB 文件,并將它保存在上面斜體部分指定的本地路徑里,這樣你就可以確保你的符號文件版本和你機器上的文件版本一致。

如果你是通過代理上網那么你需要配置 IE 的連接設置。具體方法恕不贅言

 

posted on 2011-05-10 11:02 肥仔 閱讀(727) 評論(0)  編輯 收藏 引用 所屬分類: 調試

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区久久久久| 国产女主播视频一区二区| 国语自产精品视频在线看一大j8| 亚洲狼人精品一区二区三区| 亚洲国产一区二区精品专区| 久久中文字幕一区| 亚洲人被黑人高潮完整版| 最新成人av在线| 欧美国产日韩一区二区在线观看| 99国产精品久久久久老师| 欧美三区免费完整视频在线观看| 99视频精品| 亚洲欧美日韩精品一区二区| 国产综合欧美| 亚洲第一综合天堂另类专| 欧美日韩国产欧| 欧美影院精品一区| 麻豆精品在线观看| 一区二区三区四区五区精品视频| 一本综合久久| 激情成人av在线| 99re热这里只有精品视频| 国产精品亚洲一区| 欧美电影在线| 国产精品系列在线播放| 欧美 日韩 国产在线| 欧美视频不卡| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩一区二区免费在线观看| 先锋资源久久| 欧美黑人在线播放| 久久精品水蜜桃av综合天堂| 欧美粗暴jizz性欧美20| 欧美一区二区三区视频免费播放| 狂野欧美激情性xxxx欧美| 亚洲欧美卡通另类91av | 日韩视频精品在线| 欧美一区二区三区四区在线| 亚洲精品自在久久| 久久激情网站| 亚洲欧美日韩国产精品| 欧美成人国产| 久久综合久久久久88| 国产精品国产福利国产秒拍 | 亚洲午夜久久久| 榴莲视频成人在线观看| 欧美在线观看一区| 国产精品对白刺激久久久| 亚洲国产导航| 韩国精品主播一区二区在线观看| 亚洲私人影吧| 在线视频你懂得一区二区三区| 久久久久久欧美| 久久精品亚洲精品| 国产精品制服诱惑| 亚洲一区二区成人| 在线一区二区视频| 亚洲裸体俱乐部裸体舞表演av| 激情五月综合色婷婷一区二区| 亚洲小说欧美另类婷婷| 亚洲一区二区三区精品在线观看| 欧美va天堂| 亚洲国产精品一区| 亚洲精品久久久一区二区三区| 久久精品成人| 蜜桃伊人久久| 亚洲国产另类 国产精品国产免费| 欧美一区二区视频在线观看2020| 久久国产福利| 国产婷婷色一区二区三区四区| 亚洲欧美日本国产有色| 香蕉久久夜色精品国产| 国产麻豆视频精品| 亚洲欧美综合精品久久成人| 久久国产精彩视频| 国内久久视频| 玖玖综合伊人| 亚洲韩国青草视频| 一本久久综合亚洲鲁鲁| 欧美日韩一区二区高清| 亚洲一区二区精品视频| 久久er99精品| 在线观看日韩专区| 欧美激情久久久久| 亚洲视频精品在线| 久久成年人视频| 亚洲二区在线观看| 欧美日本在线| 亚洲字幕一区二区| 老司机67194精品线观看| 亚洲国产导航| 国产精品国产自产拍高清av王其 | 乱中年女人伦av一区二区| 亚洲国产视频a| 欧美天堂在线观看| 欧美在线视频一区二区| 欧美超级免费视 在线| 一区二区三区偷拍| 韩日欧美一区二区| 欧美精品aa| 欧美亚洲午夜视频在线观看| 奶水喷射视频一区| 亚洲一区制服诱惑| 在线播放精品| 国产精品久久久久久超碰| 久久久久久9999| 日韩视频一区二区三区| 久久久国产一区二区| 日韩午夜av电影| 国内久久精品| 欧美午夜电影一区| 麻豆精品网站| 欧美一区二区精品在线| 亚洲人成网站精品片在线观看| 欧美中文在线字幕| 一本色道久久88综合日韩精品| 国产一区二区在线观看免费播放| 欧美精品亚洲一区二区在线播放| 欧美一区1区三区3区公司| 亚洲美女淫视频| 欧美福利网址| 久久综合久久综合久久综合| 亚洲一区二区三区四区中文| 最新成人av网站| 国内精品伊人久久久久av一坑| 国产精品夫妻自拍| 欧美日本韩国一区二区三区| 久久日韩粉嫩一区二区三区| 亚洲欧美美女| 久久免费国产精品| 香蕉国产精品偷在线观看不卡| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久婷婷国产麻豆91天堂| 亚洲一区二区少妇| 99视频国产精品免费观看| 亚洲国产日韩综合一区| 欧美激情久久久久| 欧美韩日精品| 欧美不卡在线| 欧美黄色成人网| 欧美成人综合| 亚洲精品在线视频| 国产一区二区日韩精品| 欧美片在线播放| 欧美+亚洲+精品+三区| 久久久久久久999| 欧美一区二区视频在线观看2020| 一区二区精品在线| 亚洲一区二区三区四区在线观看| 日韩亚洲欧美一区二区三区| 亚洲人被黑人高潮完整版| 亚洲国产欧美国产综合一区| 欧美激情自拍| 亚洲欧洲精品一区二区精品久久久| 亚洲电影毛片| 亚洲精品久久久久| 99国内精品久久| 亚洲一区网站| 欧美影院一区| 欧美成人精品高清在线播放| 久久爱91午夜羞羞| 另类亚洲自拍| 欧美国产日韩视频| 亚洲欧洲日产国产综合网| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产欧美日韩亚洲精品| 国产视频丨精品|在线观看| 国产在线观看一区| 亚洲欧洲精品一区二区三区| 99精品视频免费全部在线| 亚洲欧美日韩在线综合| 久久国产夜色精品鲁鲁99| 欧美成人a∨高清免费观看| 91久久精品久久国产性色也91| 9l国产精品久久久久麻豆| 欧美亚洲一区二区在线观看| 久久综合伊人77777| 欧美日韩在线播放三区| 国产一区二区三区久久| 亚洲精品小视频| 欧美在线短视频| 亚洲国产精品嫩草影院| 亚洲午夜av| 美女福利精品视频| 国产精品久久久久久久久久久久久 | 香蕉久久夜色精品国产| 免费欧美在线视频| 国产精品羞羞答答xxdd| 亚洲国产精品久久久久| 亚洲欧美日韩精品在线| 欧美大尺度在线观看| 亚洲国产精品视频一区| 国产视频一区免费看| 亚洲日本va午夜在线影院| 欧美尤物一区| 9久re热视频在线精品| 久久婷婷激情| 国产午夜久久久久| 亚洲——在线| 亚洲国产毛片完整版|