
我们有一个超大的数组,用于alignment的目的,这样一个错误就不会被通常的机制所捕获。
是否有可能在windows中保护一个小的任意区域(在数组的开始和结束时是16个字节),这样会导致访问冲突? 语言是C ++。
在C中的fchmod函数
如何在ASP.NET(3.5)中创build“公共”用户configuration文件页面
你怎么样cppfunction?
不能从'const char '转换为'char *'x100000(Qt Creator C ++ windows 32)
如何在windows机器上安装Cygwin来使用gcc?
我相信,在x86架构中,将内存标记为受保护的最佳粒度是针对一个页面(我认为是4K)。 您可以设置数组,使开始或结尾落在页面边界(并保护该页面)。 但是,如果两端都落在这样的边界上,当然需要一个非常特定的数组长度。
这里是一个如何设置守卫页面的例子。
您可以在UNIX *** 作系统上使用__attribute__((aligned (PAGESIZE)))和mprotect组合执行此mprotect 。 在windows上,我认为有一个相当于mprotect ,但它也限于一页内存。
内存访问是由硬件完成的,而不是由软件完成的。 如果每个单独的内存访问都需要通过一些数据结构来检查页面是否受到保护,那将会非常缓慢。
不直接。 您可以做的最接近的是在这些缓冲区上设置数据断点。 但是,x86总共有4个这样的断点,它们最多为8个字节。 此外,你需要在环0(内核模式)设置它们。
我不认为这可以做到。 你总是可以自己抛出一个异常。
总结以上是内存溢出为你收集整理的访问特定地址时是否可以强制访问?全部内容,希望文章能够帮你解决访问特定地址时是否可以强制访问?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)