文章目錄
從 DLL 中建立 PDB 檔
這是在追查某個 dll 可能的潛在效能問題時,延伸出的問題,一般情況下我們透過 NuGet 下載套件時大多都沒有包含 PDB - Program DataBase file 檔,讓追查錯誤時少了一個好用有效的利器,所以才興起從 dll 取得 pdb 的念頭,google 後在 stackoverflow
上看到可以透過 dotPeek
來製作 PDB,立馬動手實驗看看並紀錄一下
關於 dotPeek
- 是知名軟體開發商 JetBrains,所推出的免費 .NET Decompiler and Assembly Browser
- 支援反組譯
.dll
,.exe
,.winmd
與.baml
- 支援開啟
.zip
,.vsix
與.nupkg
- 可經由指定
.pdb
檔案或是 source 伺服器下載 pdb 以方便偵錯 - 可以產生 PDB 檔
- 可以將反組譯的結果儲存為 Visual Studio 的專案
- Download dotPeek 可以下載安裝檔
從 DLL 建立 PDB 檔
下載並安裝
dotPeek
Download dotPeek 可以下載安裝檔
開啟目標 DLL
這邊使用 EntityFramework 6.2.0 使為範例
File –> Open…
產生 PDB
在目標 assembly 上按右鍵 –> Generate Pdb…
選擇 PDB 存放資料夾
產出結果
- 會產生
EntityFramework.pdb
/990FA7A336B74936B515FEF0C4D65C751
資料夾 .pdb
置於{dll path}/{dll name}.pdb/{Assembly hash}/
中
- 會產生
心得
JetBrains 真是愈來愈令人敬佩呀,從 Visual Studio 的強大擴充套件 - ReSharper
、前端便利 IDE - WebStorm
、python 少數支援 behave 的 IDE - PyCharm
、 跨平台的 .net 開發 IDE - Rider
到 Google 欽點的新 Android 開發語言 - Kotlin
,每項工具都非常好用,讓我每次只要有想嘗試的工具都會先上 JetBrains 挖挖寶
這次的需求:從 DLL 中建立 PDB 檔,透過 dotPeek
簡直稱得上是無腦操作呀,流程上簡單又直覺,再次讚嘆 JetBrains 的強大,另外值得一提的是 dotPeek
是免費工具,非常佛心值得推薦呀
參考資訊
文章作者 Yowko Tsai
上次更新 2021-10-29
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。