程序出现Access violation - code c0000005 (first chance)的解决方法
来源:互联网 发布:vscode react 编辑:程序博客网 时间:2024/06/06 01:13
遇到相同的问题,虽然没解决我的问题,留着慢慢研究。
一、 首先说明产生这种现实的原因:
操作对象为null或内存地址不存在,非常容易产生这种错误的情况是你的程序采用的多线程技术,线程中有多全局变量操作 见四。要想真正在你的海量程序代码中定位到错误位置,属实是件不易的事情。
二、 那么我们如何解决这个问题呢?本人提出两种方法
1.从代码入手逐段屏蔽代码,后运行看是否产生错误,这样方法对于代码量小的程序比较容易定位,但对于 大量代码的程序定位错误比较困难。
2.windbg 定位错误,那么就要了解windbg的使用方法,这里简单介绍下它的用法和命令。
2.1.启动windbg.exe: 文件-> 打开可执行文件->在0:00>g 运行
2.2. 设置符号文件: 文件->符号文件路径D:\symbol;srv*d:\symbolslocal*http://msdl.microsoft.com/download/symbols
其中D:\symbol;是你启动exe的pdb文件存在路径 d:\symbolslocal是系统dll的pdb下载存放路径http://msdl.microsoft.com/download/symbols是win系统pdb下载地址
当错误发生时:
>uf "错误函数" 这样就可以大概定义错误位置。
3.下面是windbg的常用命令要想更详细的了解查询帮助文档
1. >g 程序执行
1.vertarget命令显示当前进程的大致信息。
2.lmvm命令可以看任意一个dll/EXE的详细信息。
3.lmf可以列出当前进程中加载的所有dll文件和对于的路径
4.dd指定地址
5.ed 地址1 地址2 把地址1 改成 地址2
6.!address命令可以显示某地址页信息
7.s搜索内存 s -u "asdf"
8.~可以显示线程信息与不同线程之间切换
9. u 反汇编某一地址。
10*. uf反汇编整个函数。
11*. kn 查看命令切换到主线程 查看callstack 调用堆代码信息
.frame 行号
x 显示当前这个函数里面的局部变量值
例如
>~0s
>kn
>.frame d
>x
>dt 变量名 显示变量成员信息
11. x 查找某一符号对于的二进制
12. dds 二进制对于符号
13. >bp 函数 "k;.echo 'break';g"
bp设置断点
K显示callstack信息
g继续执行
14. !handle获得整个进程,或者某个handle的详细信息
!htrace 可以获得某一个handle创建时候的call stack
!cs 可以获得一个criticalsection的详细信息
adplus
Adplus -crash -p <pid> -quit -fullonfirst -o c:\dddd
监视进程所有异常
Adplus -crash -p <pid> -quit -nodumponfirst -o c:\dddd
建议采用:
adplus -crash -quiet -o c:\dddd -sc 程序.exe
三、watson 当程序发生异常退出时 把dump保存下来
四、非常容易产生这种错误的情况是你的程序采用的多线程技术 见vc多线程使用不当导致一系列错误
- 程序出现Access violation - code c0000005 (first chance)的解决方法
- (转)程序出现Access violation - code c0000005 (first chance)的解决方法
- 记住c0000005 Access Violation 崩溃
- First-chance exception in MFCDibImshow.exe: 0xC0000005: Access Violation.
- Qt:Exception at 0xeefde9, code:0x0000005: read access violation at: 0x0, flags = 0x0(first chance)
- 运行程序提示access violation at address的解决方法
- 运行程序提示access violation at address的解决方法
- 运行程序提示access violation at address的解决方法-
- 运行程序提示access violation at address的解决方法
- First-chance exception at 0x000007FE86D99B3C in XXXX.exe: 0xC0000005: Access violation reading locat
- read access violation at:0x0, flags=0x0(first chance)
- Qt error:: write access violation at: 0x1, flags=0x0 (first chance)
- QT5.4 read access violation at: 0x0, flags=0x0 (first chance)
- Error code 2: Access violation的错误.
- 在C******App::InitInstance() 中出现Access Violation错误的解决方法
- 运行程序提示access violation at address的解决方法【转自互连网】
- 关于handled exception .exe:access violation的解决方法
- Access violation reading location 0xccccccc0运行异常的解决方法
- VC# TMSChart图形绘制
- Tomcat: IOException while loading persisted sessions: java.io.EOFException
- poj 2299 Ultra-QuickSort
- mfc与win32区别
- Fedora的帮助网页--详细的哟
- 程序出现Access violation - code c0000005 (first chance)的解决方法
- PostgreSQL与MySQL命令比较
- 沟通管理技巧漫谈
- 开发人员、程序员与计算机科学家三者之间的区别
- 在C和C++里,要尽量避免使用 system("pause")
- 当构造函数定义在private或者protected里时
- Tomcat服务器环境搭建
- ForeFrontTMG 和 Wireshark
- Ubuntu 12.04 iNode Client找不到库libjpeg和libtiff的解决方法