失去破发点

时间:2009-05-04 01:53:21

标签: c# visual-studio debugging

// break point set here>>
webRequest = (HttpWebRequest)WebRequest.Create(server);
webRequest.Timeout = 30000;
webRequest.Credentials = CredentialCache.DefaultCredentials;
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.KeepAlive = false;


XmlDocument doc = new XmlDocument();
doc.AppendChild(request.ToXmlElement(doc));
byte[] data = XmlUtil.DocumentToBytes(doc);

webRequest.ContentLength = data.Length;

// write data to stream
requestStream = webRequest.GetRequestStream();
requestStream.Write(data, 0, data.Length);
requestStream.Close();

// get response
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();

dataStream = response.GetResponseStream();

我在上面的第一行设置了一个断点,但由于某种原因,我在webRequest =(HttpWebRequest)WebRequest.Create(server)之后丢失了它;完成,并且永远不会在此方法的下一行中超出任何调试点。就像它在调试断点方面丢失了它的位置并最终在线下点击而不是继续点击我在这里添加的调试点(例如dataStream)。我知道它没有错误,因为我最终得到了回复。我想查看dataStream,但每次发出请求时它都不会返回,其余的代码在接收到响应后会在此方法之外运行。

3 个答案:

答案 0 :(得分:1)

废话,我发现响应返回null并且正在实现另一部分代码,因此断点从未被命中,因为它首先触及我的错误处理并停在那里。

答案 1 :(得分:0)

我对你的问题有点不清楚。你是否在评论专栏设置了断点,它从那里消失了?如果是这样,你可以把它放在下一行或在评论点插入一条无操作线并从那里开始吗?在注释行上设置断点需要调试器和语言服务跳过几个环节并增加出现问题的可能性(它应该仍然可以工作,但它是一个很好的诊断检查)。在实际代码行上设置断点应该没有任何问题。

如果您设置实际代码行,可以定义“dissapear”吗?它是完全消失还是空白,或是否有警告标志?

答案 2 :(得分:0)

要检查的第一件事是您将Visual Studio设置为在DEBUG模式下构建,而不是RELEASE模式。在RELEASE模式下,编译器可以优化和重新排序语句,因此源文件中的代码不一定与为断点存储的行号匹配。