1

我正在寻找 .NET 下缓冲区溢出错误的常见原因。

我知道在托管的 .NET 代码下缓冲区溢出是不可能的。但是,在 .NET 应用程序范围内仍然可能出现此异常。

我想到的东西——

  • COM 对象调用的有效参数
  • PInvoke/Win32 调用的有效参数

调试缓冲区溢出错误的最佳方法是什么?

4

1 回答 1

2

从评论到问题:

那么你们如何去调试.NET 下的缓冲区溢出错误呢?

大多数时候,一开始就没有什么可以调试的。我的意思是,当然存在错误并且您需要修复它,但错误不在您的代码中。它在您调用的非托管库中,您无法更改。您唯一能做的就是不要以这种方式使用该库。

所以这是一个常见原因:非托管库中的错误。

如果您调用没有错误的非托管库,也可能发生这种情况,但该库希望您明确告诉它缓冲区的大小并且您给它错误的数字。这是您需要修复的代码问题。然而,它在 .Net 中很少发生,因为查找缓冲区的大小通常就像检查字节数组的 .Length 属性一样简单。

于 2009-02-09T00:27:28.480 回答