次のコマンドを使用してすべての文字列をダンプできます !dumpheap -type System.string
特定の「文字列」を開始または含む文字列のみをダンプまたは出力するにはどうすればよいですか
例。「/my/app/request」を含む文字列を表示することにのみ興味があります
これには、sos の代わりに sosex を使用します。オプションを使用して!strings
文字列をフィルタリングできるコマンドがあり/m:<filter>
ます。
!sosex.stringsを使用します。コンテンツや長さに基づいて文字列をフィルタリングするオプションについては、!sosex.helpを参照してください。
本当にSOSEXなしで行きたい場合は、試してみてください
.foreach (string {!dumpheap -short -type System.String}) { .foreach (search {s -u ${string}+c ${string}+c+2*poi(${string}+8) "mySearchTerm"}) { du /c80 ${string}+c }}
それは使用しています
/c80 は、出力を向上させるためのものです。String の .NET 詳細が必要な場合は、!do ${string}
代わりに を使用することもできます。du /c80 ${string}+c
!dumpheap がそれをサポートしているかどうかは不明です。いつでも .logopen を使用して、出力をファイルにリダイレクトし、それを後処理できます。より洗練された (したがってより複雑な) ソリューションとして、.shell を使用してコマンド出力をシェル プロセスにリダイレクトし、解析することもできます。次に例を示します。
http://blogs.msdn.com/b/baleixo/archive/2008/09/06/using-shell-to-search-text.aspx
詳細については、.shell ドキュメントも参照してください。
http://msdn.microsoft.com/en-us/library/windows/hardware/ff565339(v=vs.85).aspx