可以使用以下命令转储所有字符串 !dumpheap -type System.string
如何只转储或打印那些开头或包含特定"字符串的字符串"
实施例。我只是想查看包含" / my / app / request"
的字符串答案 0 :(得分:4)
使用sosex而不是sos。它有一个!strings
命令,允许您使用/m:<filter>
选项过滤字符串。
答案 1 :(得分:3)
使用!sosex.strings。有关根据内容和/或长度过滤字符串的选项,请参阅!sosex.help。
答案 2 :(得分:1)
不确定!dumpheap是否支持。您始终可以使用.logopen将输出重定向到文件并对其进行后处理。对于更优雅(也因此更复杂)的解决方案,您还可以使用.shell将命令输出重定向到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
答案 3 :(得分:0)
如果你真的想没有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
。