原创 Net 高級調試之十二:垃圾回收機制以及終結器隊列、對象固定

一、簡介    今天是《Net 高級調試》的第十二篇文章,這篇文章寫作時間的跨度有點長。這篇文章我們主要介紹 GC 的垃圾回收算法,什麼是根對象,根對象的存在區域,我們也瞭解具有析構函數的對象是如何被回收的,終結器隊列和終結器線程也做到了眼

原创 Net 高級調試之十一:託管堆佈局架構和對象分配機制

一、簡介    今天是《Net 高級調試》的第十一篇文章,這篇文章來的有點晚,因爲,最近比較忙,就沒時間寫文章了。現在終於有點時間,繼續開始我們這個系列。這篇文章我們主要介紹託管堆的架構,對象的分配機制,我們如何查找在託管堆上的對象,我學完

原创 Net 高級調試之十:輕量級代碼生成的調試

一、簡介    今天是《Net 高級調試》的第十篇文章。說起來,高級調試,調試的內容還是挺多的,技巧也不少,但是,要想做一個合格的高級調試人員,還需要掌握如何調試動態生成的IL代碼。今天要探討的高級調試的技巧是如何調試通過 Emit 動態生

原创 Net 高級調試之九:SOSEX 擴展命令介紹

一、介紹    今天是《Net 高級調試》的第九篇文章。這篇文章設計的內容挺多的,比如:擴展的斷點支持,如何查找元數據,棧回溯,對象檢查,死鎖檢測等等,內容挺多的。功能特別強大,使用特別方便,但是需要說明一點,這些功能不是 SOS 的功能,

原创 Net 高級調試之八:代碼審查及雜項命令

一、簡介    今天是《Net 高級調試》的第八篇文章。這篇文章設計的內容挺多的,比如:如何查看方法的彙編代碼,如何獲取方法的描述符,對象同步塊的轉儲,對象方法表的轉儲,託管堆和垃圾回收器信息的轉儲,CLR 的版本,GC 模式,等等,內容挺

原创 Net 高級調試之七:線程操作相關命令介紹

一、簡介    今天是《Net 高級調試》的第七篇文章。上一篇文章我們說了值類型,引用類型,數組等的內存表現形式。有了這個基礎,我們可以更好的瞭解我們的程序在運行時的狀態,內存裏有什麼東西,它們的結構組成是什麼樣子的,對我們調試程序是更有幫

原创 Net 高級調試之六:對象檢查之值類型、引用類型、數組和異常的轉儲

一、簡介     今天是《Net 高級調試》的第六篇文章。記得我剛接觸 Net 框架的時候,還是挺有信心的,對所謂的值類型和引用類型也能說出自己的見解,畢竟,自己一直在努力。當然這些見解都是書本上的,並沒有做到眼見爲實,所以總是有些東西說不

原创 Net 高級調試之五:如何在託管函數上設置斷點

一、簡介    今天是《Net 高級調試》的第五篇文章。今天這篇文章開始介紹如何在託管方法和非託管方法設置斷點,我們要想調試程序,必須掌握調試的一些命令,動態調試的命令,我們在上一篇文章已經講過了。光有命令也是不行的,要讓這些調試命令有用,

原创 Net 高級調試之四:Windbg 動態調試

一、簡介    今天是《Net 高級調試》的第四篇文章。到今天爲止,也有三篇文章了,對 Windbg 也有初步的認識了,當然,一個工具流暢、熟練的使用,對於我們調試 Net 程序是至關重要的。在前幾篇文章的基礎上,我們這篇文章主要介紹一些和

原创 Net 高級調試之三:類型元數據介紹(同步塊表、類型句柄、方法描述符等)

一、簡介    今天是《Net 高級調試》的第三篇文章,壓力還是不小的。上一篇文章,我們淺淺的談了談 CLR 和 Windows 加載器是如何加載 Net 程序集的,如何找到程序的入口點的,有了前面的基礎,我們今天看一點更詳細的東西。既然

原创 Net 高級調試之二:CLR和Windows加載器及應用程序域介紹

一、簡介    今天是 Net 高級調試的第二篇文章,第一篇文章記錄了自己學習 Net 高級調試的第一步,認識一些調試工具,有了工具的倚仗,我們開始仗劍走天涯了,開始Net 高級調試正式的征程了。我先說一下,我的文章,【調試測試】這部分一般

原创 Net 高級調試之一:開始認識一些調試工具

一、簡介    從今天開始一個長系列,Net 高級調試的相關文章,我自從學習了之後,以前很多模糊的地方現在很清楚了,原來自己的功力還是不夠,所以有很多不明白,通過學習 Net 高級調試,眼前豁然開朗,茅塞頓開。其實,剛開始要學習《Net 高

原创 在 Net7.0 環境下使用 RestSharp 發送 Http(FromBody和FromForm)請求

一、簡介    最近,在做一個數據傳輸的服務,我在一個Worker Service裏面需要訪問 WebAPI 接口,並傳輸數據,也可以提交數據。由於第一次使用 RestSharp 發送請求,也遇到了很多問題,不過最終把問題都解決了。什麼東西

原创 在 Net7.0環境下測試了 Assembly.Load、Assmebly.LoadFile和Assembly.LoadFrom的區別

一、簡介    很長時間沒有關注一些C#技術細節了,主要在研究微服務、容器、雲原生、容器編排等高大上的主題了,最近在寫一些框架的時候,遇到了一些和在 Net Framework 框架下不一樣的情況,當然了,我今天主要測試的是,在通過【添加項

原创 在 Net7.0環境下通過反射創建對象和調用方法

一、介紹    最近沒事幹,就用閒暇時間寫點東西,也記錄一下溫習歷程。老人說的好,好記性,不如爛筆頭。時間一長,當時記憶的再清楚,都會變得模糊,索性就寫博客記錄下來,如果下次需要,直接打開博客就找到了,不用去網上亂找了。    今天我要寫一