C#不进断点

1,检查VS的调试模式。VS的调试分为两种,Debug和Release。Debug是专门真对检查程序的bug而设置的一种模式。Release模式对程序的编译进行了优化,一般用于程序发布。首先确保是在Debug模式下设置的断点。

  1. 解决VS调试时断点不会命中

  2. 2,检查设置断点的模块在调试时有没有输出。调试时遇到最多的警告“当前不会命中断点 还没有为该文档加载任何符号 ”。原因是我们设置断点的代码块并没有编译输出。

  3. 解决VS调试时断点不会命中



  4. 找到程序的生成目录,通常是在bin文件夹下,删除设置断点代码文件对应的dll文件或exe文件。重新调试项目

    解决VS调试时断点不会命中



  5. 3,统一引用目录,将引用设置到同一个目录下,防止源码与dll版本不匹配

  6. 4,工具——选项——调试——常规中的“要求源文件和原始版本完全匹配”的勾去掉

    解决VS调试时断点不会命中







5、

(1)当前不会命中断点,还没有为该文档加载任何资料 
    问题原因:窗口所在的类库或者项目在应用程序目录中(release或者debug)中只生成了dll文件,没有生成pdb文件。例如下面的:类库中的内容就不可以调试。

   (2)解决方案:修改类库属性配置,然后先清理这个项目再重新生成项目即可。生成的***.pdb文件,并将文件拷贝到类库对应的主程序的release或者debug中即可。


(2)、.pdb文件的作用
    pdb文件保存了调试信息。简单的讲,运行环境中有此文件在输出atacktrace的时候会包含远文件名称、行号的信息。否则只有类名,函数名等信息。

转载自:

1 https://jingyan.baidu.com/article/8ebacdf026993249f65cd58d.html

2 https://blog.csdn.net/baicai_123/article/details/53502392


  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 中实现文件传输的断点续传功能,需要了解以下几个步骤: 1. 建立连接:使用 TCP 或 UDP 协议建立客户端与服务器之间的连接。 2. 发送文件信息:客户端向服务器发送文件名、大小、最后修改时间等信息。 3. 接收文件信息:服务器接收到文件信息后,根据文件名创建或打开文件,并记录已经传输的字节数。 4. 发送文件数据:客户端将文件数据拆分成多个数据块,每个数据块带上序号,发送给服务器。 5. 接收文件数据:服务器接收到数据块后,将其写入文件对应的位置,并记录已经接收到的字节数。 6. 检查数据是否完整:客户端和服务器都需要检查每个数据块是否已经成功接收,并行重传或者继续传输剩余数据。 7. 断点续传:如果传输过程中出现异常,客户端和服务器可以记录已经传输的字节数,并在恢复连接后从该位置继续传输。 下面是一个简单的 C# 文件传输的断点续传示例代码: ```csharp // 客户端代码 TcpClient client = new TcpClient(); client.Connect("127.0.0.1", 8888); NetworkStream stream = client.GetStream(); byte[] fileNameBytes = Encoding.UTF8.GetBytes(fileName); byte[] fileInfoBytes = BitConverter.GetBytes(fileSize); byte[] fileData = File.ReadAllBytes(fileName); stream.Write(fileNameBytes, 0, fileNameBytes.Length); stream.Write(fileInfoBytes, 0, fileInfoBytes.Length); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int bytesSent = 0; int totalBytesSent = 0; while (totalBytesSent < fileSize) { int bytesToSend = Math.Min(bufferSize, fileSize - totalBytesSent); Buffer.BlockCopy(fileData, totalBytesSent, buffer, 0, bytesToSend); stream.Write(buffer, 0, bytesToSend); totalBytesSent += bytesToSend; Console.WriteLine("Sent {0} bytes.", totalBytesSent); } stream.Close(); client.Close(); // 服务器端代码 TcpListener server = new TcpListener(IPAddress.Any, 8888); server.Start(); while (true) { TcpClient client = server.AcceptTcpClient(); NetworkStream stream = client.GetStream(); byte[] fileNameBytes = new byte[1024]; stream.Read(fileNameBytes, 0, fileNameBytes.Length); string fileName = Encoding.UTF8.GetString(fileNameBytes).Trim('\0'); byte[] fileSizeBytes = new byte[8]; stream.Read(fileSizeBytes, 0, fileSizeBytes.Length); long fileSize = BitConverter.ToInt64(fileSizeBytes, 0); FileStream fileStream = new FileStream(fileName, FileMode.Create); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int bytesReceived = 0; int totalBytesReceived = 0; while (totalBytesReceived < fileSize) { int bytesToReceive = Math.Min(bufferSize, (int)(fileSize - totalBytesReceived)); bytesReceived = stream.Read(buffer, 0, bytesToReceive); fileStream.Write(buffer, 0, bytesReceived); totalBytesReceived += bytesReceived; Console.WriteLine("Received {0} bytes.", totalBytesReceived); } stream.Close(); client.Close(); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值