• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

[Access violation ] 2G内地址错误访问

mysql 搞代码 4年前 (2022-01-09) 24次浏览 已收录 0个评论

如无特殊说明 环境都是x86系列cpu ia-32 如果是64位会特殊说明的 例子都是引用swd 更详细的说明请看swd一书 以下说明及以后的博客都会有理解偏差的地方 还请各位前辈和战友指正一二 毕竟本人也是一边看书一边记录 难免会有天圆地方的思想 qq 604015858 欢迎

如无特殊说明 环境都是x86系列cpu ia-32 如果是64位会特殊说明的
例子都是引用swd 更详细的说明请看swd一书
以下说明及以后的博客都会有理解偏差的地方 还请各位前辈和战友指正一二 毕竟本人也是一边看书一边记录 难免会有天圆地方的思想
qq 604015858 欢迎随时指导交流

对windows来说 一个任务就是一个线程
cpu对任务的保护分为 任务间保护和任务内保护
任务间保护通过段机制和页机制来实现
任务内保护通过权限来实现

以下话题描述一下任务内保护
每个app(应用程序)都会有4G的空间 高2G放系统的数据和代码的映射
低2G app自用 当你访问高2G空间的系统空间 而又没有赋予访问特权 那就会出现如下出错:

Access violation – code c0000005 (first chance)
00401035 c705808080a022000000 mov dword ptr ds:[0A0808080h],22h ds:0023:a0808080=????????

将22h放到a0808080时出错 信息就是 访问系统空间时没有被授权 肯定会被拒绝

ps:以下是我配置windbg的信息
(由于我接触windbg时很茫然 下面贴上我的设置 希望可以给刚接触的朋友一个提示 不至于向我当初那样茫然 这些设置可能不正规 但至少效果出来了)
1:获取windbg
去微软官网下载windows调试工具集 或是在网上下载一个
安装之后你会在Debugging Tools for Windows目录下发现很多小工具 windbg.exe就是其中之一 这是一个弹药库 windbg只是其中的一支*

2:符号表的设置
系统符号设置: 可以参看http://blog.chinaunix.net/uid-24709751-id-4217635.html这个博客
不要以为这就完了 还需要设置你需要调试对象的pdb:
app符号设置:

你只需要设置前面的“D:\zwkkkkkkkkkkkkkkkkkkkkkk\百度云管家\科锐10DVD\DVD6 MFC编程\swd\bin\Debug”后面的是系统符号设置 如果你做了 就不需要在这添加了 windbg会自动添加在这儿

如果你的pdb目录不止一个 就需要把多个路径都写在这儿

还有一个问题 就是这个对话框怎么出现的?
windbg菜单栏 file下面的符号设置
windbg对很多路径都做了兼容处理 具体可以看一下windbg的帮助 网上有人把windbg的帮助翻译成中文了 不愿意看英文的可以找下中文了解一下

2: 应用程序路径
如果你调试的是dump文件 这个需要设置一下

3: 源文件路径
如果你有源文件 可以把源文件路径设置一下 第一张图的左上角那个窗口显示本文来源gao.dai.ma.com搞@代*码#网的就是源文件
大部分情况下 能获得到pdb就很不错了 但是为了方便学习 我还是加上了源文件 用以了解windbg报的每一个错误提示信息

至于windbg的用法 可以慢慢学习 用到几个命令学习几个 这也是本系列的一个重要目标之一


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:[Access violation ] 2G内地址错误访问

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址