実行中の .NET アプリケーションで文字列テーブルの内容を確認する方法はありますか?
通常の文字列連結を使用するコンソール アプリケーションと、文字列ビルダーを使用するコンソール アプリケーションを比較したいと思います。
実行中の .NET アプリケーションで文字列テーブルの内容を確認する方法はありますか?
通常の文字列連結を使用するコンソール アプリケーションと、文字列ビルダーを使用するコンソール アプリケーションを比較したいと思います。
ClrMDを使用してプロセスにアタッチし、そこから情報を取得できます。次の行に沿った何かが機能するはずです。
var proc = Process.GetProcessesByName("myapp.exe").FirstOrDefault();
using (var target = DataTarget.AttachToProcess(proc.Id, 1000))
{
var runtime = target.ClrVersions[0].CreateRuntime();
var heap = runtime.GetHeap();
foreach (var obj in heap.EnumerateObjectAddresses())
{
var type = heap.GetObjectType(obj);
if (type.Name == "System.String")
{
var value = (string)type.GetValue(obj);
// Write value to disk or something.
}
}
}