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

清風竹林

ぷ雪飄絳梅映殘紅
   ぷ花舞霜飛映蒼松
     ----- Do more,suffer less

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


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

作者:Generad USam

 

一、何謂符號文件?

符號文件(Symbol Files)是一個數據信息文件,它包含了應用程序二進制文件(比如:EXE、DLL等)調試信息,專門用來作調試之用,最終生成的可執行文件在運行時并 不需要這個符號文件,但你的程序中所有的變量信息都記錄在這個文件中。所以調試應用程序時,這個文件是非常重要的。用 Visual C++ 和 WinDbg 調試程序時都要用到這個文件。
在 Windows 系統中,符號文件以 .pdb 為擴展名,比如:每個 Windows 操作系統下有一個 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. 先確定你的操作系統(OS)版本;
  2. 到微軟網站下載相應的符號文件;
  3. 安裝符號文件,對于符號文件的安裝位置沒有特貝要求,可以安裝在任何目錄中;
  4. 設置環境變量,使得調試工具(比如:Visual C++、WinDbg、Ntsd、DrWatson 等)能找到符號文件;

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

如果是手動安裝符號文件,有一點很重要,那就是宿主機(Hostt Computer)上的符號文件必須與目標機器(Target Computer)上的 Windows 版本相匹配。
這里所謂的宿主機指的是運行調試會話的機器,在典型的雙系統調試會話環境中,宿主機可以是連接到目標機器的任何機器。目標機器指的是發生軟件組件、系 統服務、應用程序或操作系統運行失敗的機器。也即是需要被調試的機器,它是調試會話關注的焦點。目標機器可以近在咫尺,也可以位于完全不同的地方。有時我 們也將目標機器稱之為——被調試者(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”下拉列表框中選擇調試信息格式(具體選項參見圖一),在此不必禁用任何優化選項;
  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. 選擇“配置屬性”樹型節點中的“C/C++” ==〉“常規”;
  5. 設置右邊的“調試信息格式”選項(具體選項參見圖一);
  6. 選擇“配置屬性”樹型節點中的“鏈接器”==〉“調試”;
  7. 設置右邊的“生成程序數據庫文件”(具體選項參見圖一);
  8. 選擇“配置屬性”樹型節點中的“鏈接器”==〉“命令行”;
  9. 在“附加選項(D)”編輯框中添加如下指令:/opt:ref,icf;
  10. 按“確定”退出;
  11. 重新生成(Rebuild)項目;

圖一

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

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

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

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

六、系統符號文件的更新方法

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

SRV*D:\Symbols\websymbols*http://msdl.microsoft.com/download/symbols
(斜體部分是你在本地保存符號文件的路徑)

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

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

posted on 2009-09-15 18:26 李現民 閱讀(729) 評論(0)  編輯 收藏 引用 所屬分類: 絕對盜版 、VC

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            夜夜嗨av一区二区三区| 欧美日韩一二三区| 国产主播一区二区三区| 欧美中文字幕视频| 欧美一级夜夜爽| 一区福利视频| 亚洲国产精品一区二区www在线| 久久中文精品| 日韩一二三在线视频播| 一区二区三区高清在线 | 免费日韩视频| 欧美激情第9页| 午夜亚洲性色福利视频| 亚洲一区二区三区在线视频| 国产精品三上| 麻豆久久精品| 国产精品福利影院| 久久久欧美精品| 欧美国产激情| 久久国产88| 欧美高清成人| 欧美综合国产精品久久丁香| 久久一综合视频| 亚洲性线免费观看视频成熟| 久久黄色网页| 亚洲午夜小视频| 久久久久久噜噜噜久久久精品| 99爱精品视频| 久久免费高清| 欧美亚洲网站| 欧美护士18xxxxhd| 久久九九全国免费精品观看| 欧美日韩第一页| 久久一二三四| 国产精品xvideos88| 久久一区二区视频| 国产精品视频yy9099| 欧美激情小视频| 国产亚洲一区二区三区在线观看| 亚洲三级视频在线观看| 影音先锋久久资源网| 一区二区三区免费网站| 91久久精品日日躁夜夜躁欧美| 亚洲网站视频| 一片黄亚洲嫩模| 免费不卡在线观看| 久久久精品动漫| 国产精品综合| 中文亚洲欧美| 亚洲视频精品在线| 欧美成人第一页| 男人插女人欧美| 国内自拍一区| 午夜精品久久久久久久99樱桃 | 韩国av一区二区三区| 99精品福利视频| 日韩一区二区免费高清| 欧美gay视频激情| 免费看精品久久片| 激情一区二区三区| 久久不见久久见免费视频1| 欧美一级艳片视频免费观看| 国产精品麻豆成人av电影艾秋| 亚洲美女在线视频| 中文网丁香综合网| 欧美视频一区二区三区四区| 亚洲精品一线二线三线无人区| 亚洲精品乱码久久久久久蜜桃91 | 久久一二三国产| 猛干欧美女孩| 亚洲国产欧美在线| 欧美激情小视频| 亚洲精选久久| 亚洲欧美国产精品桃花| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 午夜精品网站| 亚洲欧美成人在线| 亚洲人在线视频| 亚洲激情国产精品| 玖玖玖免费嫩草在线影院一区| 免费在线播放第一区高清av| 亚洲电影免费观看高清完整版| 美女视频一区免费观看| 亚洲国产另类 国产精品国产免费| 亚洲欧洲精品一区二区三区不卡 | 久久精彩视频| 欧美激情国产高清| 99riav国产精品| 国产精品v欧美精品∨日韩| 亚洲一区二区免费在线| 久久一区精品| 国产精品网站在线| 国产欧亚日韩视频| 欧美日韩中文字幕在线| 久久久久久**毛片大全| 欧美日韩成人一区二区| 99xxxx成人网| 久久精品电影| 亚洲剧情一区二区| 国产精品女主播在线观看| 久久xxxx精品视频| 91久久综合亚洲鲁鲁五月天| 欧美一区二区国产| 亚洲三级免费| 一区二区欧美日韩视频| 牛人盗摄一区二区三区视频| 亚洲视频狠狠| 激情六月婷婷久久| 欧美成人精品影院| 亚洲欧美日韩国产一区二区| 欧美激情一区二区三级高清视频| 久久久久久久久久久一区| 国产精品久久久久久av福利软件| 在线中文字幕不卡| 欧美精品v日韩精品v韩国精品v | 亚洲第一中文字幕| 欧美亚洲网站| 一本久道久久综合狠狠爱| 国产主播一区二区三区四区| 欧美三区在线观看| 免费在线欧美视频| 久久精品二区三区| 亚洲女人天堂av| 日韩午夜在线视频| 亚洲国产精品久久久久秋霞影院| 久久精品一本久久99精品| 亚洲午夜一二三区视频| 日韩视频不卡| 在线观看日韩一区| 国产亚洲一本大道中文在线| 久久国产精品一区二区三区四区 | 欧美日韩国产一区| 欧美一区激情| 亚洲永久视频| 亚洲天堂成人| 中日韩高清电影网| 亚洲精品小视频在线观看| 亚洲国产精品精华液网站| 免费成人av在线看| 欧美chengren| 蜜桃精品久久久久久久免费影院| 久久精品盗摄| 久久久久久有精品国产| 久久精品视频在线播放| 久久国产乱子精品免费女 | 99在线热播精品免费99热| 尤物精品国产第一福利三区| 黄色成人91| 在线看成人片| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美日韩精品二区第二页| 欧美高清在线| 欧美日韩精品一本二本三本| 欧美日韩美女| 国产精品欧美精品| 国产美女精品视频免费观看| 国产日韩精品一区二区| 国产一区高清视频| 激情校园亚洲| 亚洲老板91色精品久久| 一区二区三区欧美在线观看| 亚洲欧美精品在线| 久久国产精品久久久久久电车| 久久精品中文字幕免费mv| 欧美 日韩 国产 一区| 亚洲国产精品一区二区尤物区| 日韩亚洲欧美成人一区| 性色一区二区| 女人香蕉久久**毛片精品| 欧美三级乱人伦电影| 国产欧美日韩亚州综合| 亚洲国产精品精华液网站| 9色精品在线| 久久久国产精彩视频美女艺术照福利| 久久久国产一区二区三区| 欧美激情视频网站| 亚洲一区二区在线免费观看| 久久精品人人爽| 欧美日韩黄色大片| 国产一区二区三区直播精品电影| 亚洲欧洲在线免费| 亚洲自拍偷拍色片视频| 久久综合色8888| 亚洲最新视频在线播放| 久久精品国产999大香线蕉| 欧美日韩国产不卡在线看| 国产拍揄自揄精品视频麻豆| 亚洲肉体裸体xxxx137| 欧美一区二区免费视频| 欧美高清视频一二三区| 一区二区三区欧美成人| 美女主播精品视频一二三四| 国产精品亚发布| 亚洲精品综合在线| 久久精品成人一区二区三区蜜臀 | 免费在线亚洲欧美| 亚洲免费一在线| 欧美日韩国产在线播放网站| 今天的高清视频免费播放成人| 亚洲一区中文|