我正在调试只有dll
和pdb
个文件的库。我可以看到源代码和切换断点,但我无法修改代码。
有一种创建System.IO.MemoryStream
对象的方法,我希望将刷新为到文件。这个stream
有正长度和位置> 0,我可以通过调用从调试器输出到屏幕:
new System.IO.StreamReader(stream).ReadToEnd();
但是我需要将它输出到一个文件,因为它包含二进制数据,我需要文件进行十六进制比较。为此,我在调试器监视选项卡中执行:
stream.Position = 0
stream.CopyTo(new System.IO.FileStream("file.bin", System.IO.FileMode.Create, System.IO.FileAccess.Write))
stream.Position = 0
stream.CopyTo(new System.IO.FileStream("file2.bin", System.IO.FileMode.Create, System.IO.FileAccess.Write), (int)stream.Length)
在这两种情况下都会创建空文件。
我正在调试的库有这样的用法:
using System.Globalization;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Xml;
答案 0 :(得分:1)
您可以在快速监视窗口中使用单个命令将MemoryStream转储到文件中:
File.WriteAllBytes(@"C:\file.bin", stream.ToArray())