【西天取經】第一招:如何調試NET CORE的源代碼(微軟、第三方)


How to: Debug .NET Framework source

如何設置Visual Studio開發工具調試NET源代碼:

 如何關聯所需要調試的pdb文件路徑:

一定要從Nuget上面下載帶有pdb文件的版本引用到你的項目里,這個只能是你下載之后,去本地磁盤目錄找有沒有了,有的版本真的就是就沒有pdb文件,所以只能使用不能調試。

比如:這個的 System.IdentityModel.Tokens.Jwt ,如果是5.6.0版本就沒有對應的pdb文件,只能用5.4.0這個版本進行調試。十分不爽

5.6.0版本的是真沒有pdb,5.4.0這個版本才有pdb

開發工具里需要找到"模塊"的窗口,在"調試"菜單里的子菜單項里找到"模塊"菜單項。

 要調試的代碼所在的dll文件,可以通過搜索的方式查看某一個dll是否已經是被已加載符號的狀態,如果沒有,可以通過右鍵菜單完成。

 

 選中你要加載的dll文件,右鍵菜單里關聯對應的pdb文件。

 

 符號狀態:變成已加載符號的狀態就可以調試源代碼了。

net的源碼調試比java的復雜多了,這是因為net程序編譯之后生成的dll文件里沒有調試信息,調試信息放在pdb文件里,在調試源碼的時候必須要先有對應的符號信息才可以。

如果你使用JetBrains Rider這個NET開發工具那就可以直接調試源代碼啥也不用設置,吃不吃驚,牛不牛逼。誰是宇宙第一IDE,現在是不是一目了然了。(我平時主要用它調試和查看源代碼)

后面又新知道的反編譯和調試可以在一起的工具: dnSpy (也很牛逼,但是我沒用)

總結:

想學好net比學好java門檻高多了,所以這也是為什么大家都愛用java的一個主要原因之一。

不要覺得這個門檻無所謂,好比平時我們工作中也基本用不到調試源代碼,但是如果你想做好一個大項目,那么學習源碼,調試源碼就是一個必經之路,而微軟在這個地方給你設置了一個非常高的門檻,對比這個門檻在java那里根本沒有,沒有對比就沒有傷害。

java查看源碼和調試源碼是非常簡單容易的,基本不用進行任何附加設置,就能直接調試項目里引用別人寫的jar。

我現在正好項目用到JWT,我需要一個更安全的JWT,不想在別人拿到access token之后,訪問這個jwt.io網站里看到我給他的信息,因此我需要調試源代碼,看看到底這個JWT是如何生成,如何驗證的,我學習之后,會重新修改或者重新定義一個我自己認為更安全的JWT數據給我的下游客戶。而目前市面上我能找到的關於OAuth2.0的NET CORE的例子里,基本上都是最簡單的使用方法不夠實用。就我目前的水平還沒有達到熟練掌握OAuth2.0這個開發技術,所以只能自定義實現我認為更安全的JWT給下游客戶了。

  • 被暴露的JWT信息(不安全)

  •  不被暴露的JWT信息:(加密之后給客戶端,服務器端能加密能解密的JWT才是更安全的使用方式。)

 

就憑這一個騷操作,又可以秒了網上很多介紹JWT的文章了,既實用又安全的騷操作!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM