。我已經寫了一些流轉儲工具,用於編寫某些類型的數據流進行調試,但我似乎讓整個次絆倒,當我調試,需要尋找到我調試過流,但我沒有把我的在那裏轉儲呼叫。看來我應該能夠以某種方式轉儲流只是使用VS或者也許告訴它在調試器中的流上調用我的轉儲方法之一。有沒有這樣做?有沒有辦法來轉儲從調試器流VS
我與工作流有一些文字描述數據的斑點,然後BLOB的字節,所以在看說明是非常有用的。我的轉儲方法通常只是將該信息轉儲出來,然後跳過blob。
。我已經寫了一些流轉儲工具,用於編寫某些類型的數據流進行調試,但我似乎讓整個次絆倒,當我調試,需要尋找到我調試過流,但我沒有把我的在那裏轉儲呼叫。看來我應該能夠以某種方式轉儲流只是使用VS或者也許告訴它在調試器中的流上調用我的轉儲方法之一。有沒有這樣做?有沒有辦法來轉儲從調試器流VS
我與工作流有一些文字描述數據的斑點,然後BLOB的字節,所以在看說明是非常有用的。我的轉儲方法通常只是將該信息轉儲出來,然後跳過blob。
也許你可以寫一個展臺? MSDN介紹瞭如何在這裏:http://msdn.microsoft.com/en-us/library/e2zc529c.aspx
你可以只使用即時窗口打電話給你的轉儲功能,而調試:
MikeDsDumpFxn(whateverStreamIsActiveInThisContext)
如果你的函數返回一個字符串,它會在那裏打印的結果直接窗口。
鍵入以下到即時窗口:
System.Diagnostics.Debug.WriteLine((new System.IO.StreamReader(stream)).ReadToEnd());
您可能需要'System.Diagnostics.Debug.WriteLine((新就是System.IO.StreamReader(流))ReadToEnd的());' – KCD 2012-10-28 21:47:24
注意,這將消耗通話,所以你應該知道,你可能不會能夠繼續當前的調試會話。 – 2014-06-19 15:53:17
如果你有流中的二進制數據,你可以嘗試在immediate window
使用下面的線將其傾倒到一個文件:
var lastPos = stream.Position;
stream.Seek(0, SeekOrigin.Begin)
File.WriteAllBytes("filepath.bin", new BinaryReader(stream).ReadBytes((int)stream.Length))
stream.Seek(lastPos, SeekOrigin.Begin)
的顯然必須尋求防止改變河流在傾倒時的位置的副作用(在最後一行中恢復)。
如果流不具有Length
屬性,您可以使用一個類似的解決方案to the one done here:
var lastPos = stream.Position;
var ms = new MemoryStream();
stream.Seek(0, SeekOrigin.Begin)
stream.CopyTo(ms)
File.WriteAllBytes("filepath.bin", ms.ToArray())
stream.Seek(lastPos, SeekOrigin.Begin)
非常好,這是一個很好的解決方案,讓我做我的轉儲功能是調試器的一部分 – MikeD 2009-11-25 23:01:14