VS2015 调试中的一些问题汇总
(1) V S一直显示“正在从以下位置***加载符号”的解决办法
进入VS---工具---选项----调试----符号,看右边有个“Microsoft符号服务器”,将前面的勾去掉,(可能还有删除下面的那个缓存)。然后就不会在调试时加载了!
(2) VS 调试时“还没有为该文档加载任何符号”
有的时候调试会出现这种问题:
然后断点就不会中断了。
解决方案:
比较常见的是
1.工具->选项->调试->常规->要求源文件与原始版本完全匹配的勾取消。
2.尝试重新编译项目 , 因为项目未重新编译过的话其中更改的代码就不会生效(这种情况主要在"附加到进程“的调试方法中出现)。
3.依赖项目更改 , 需要重新编译这几个关联项目。
4.别调成Release格式生成了:
用Debug才行:
。
上述方案可能没有包含全部的解决方法,但该问题最根本的原因,还是因为当前代码的调试信息没有被成功生成到对应的位置下,请根据该原因寻找对应的解决方法。
(3) 0xC0000005: 读取位置 0x00000000 时发生访问冲突
如果你对null 进行操作就会产生空指针异常 Object obj = new Object(); 你要知道 obj是一个Object指针变量,指向Object类的一个实例 我们说obj是一个对象 实质是它指向一个对象的首地址 如果这个指针变量obj 没有指向任何空间 你调用它的方法和属性就会出错 例如 Object obj = new Object(); obj.equals("123");这个是没错的 但换下面语句 Object obj = null; obj.equals("123");就会出现空指针异常
在使用的过程中,出现了标题中的错误,首先在网上搜了一些方法,费了好大的劲,终于解决了,
关于0xC0000005问题:
0xC0000005: Access Violation错误调试- -
1》数据越界或是定义的指针未释放.
2》空的指针的可能性最大。使用指针前最好能显式的赋值!
应该是指针的问题
3》内存访问错误,检查指针,是否为空,是否越界等
可能性 3 种
1:
char *p;
p = new char[number];
delete [] p;
....
// always using p....
p = xxx; // access violation
2:
char *p;
memcpy(p, xxx, number); // access violation
3:
char *p;
p = new char[number];
delete [] p;
.........
delete [] p; // access violation
~~~~~~~~~~~~~~~~~~~~~~
我发现的问题是如下 lpTexts[9] 定义错误, 不应该用
LPTSTR lpTexts = new TCHAR(9); // 问题处,导致程序关闭回收时,空指针错误
应该用:TCHAR lpTexts[9];
配合下面 ini 文件读取的使用,
GetPrivateProfileString(TEXT("RegionSetup"),TEXT("in_Size"),TEXT("0.333"),lpTexts,8, TEXT(".\\specValue.ini"));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果你对null 进行操作就会产生空指针异常 Object obj = new Object(); 你要知道 obj是一个Object指针变量,指向Object类的一个实例 我们说obj是一个对象 实质是它指向一个对象的首地址 如果这个指针变量obj 没有指向任何空间 你调用它的方法和属性就会出错 例如 Object obj = new Object(); obj.equals("123");这个是没错的 但换下面语句 Object obj = null; obj.equals("123");就会出现空指针异常
在使用的过程中,出现了标题中的错误,首先在网上搜了一些方法,费了好大的劲,终于解决了,
关于0xC0000005问题:
0xC0000005: Access Violation错误调试- -
1》数据越界或是定义的指针未释放.
2》空的指针的可能性最大。使用指针前最好能显式的赋值!
应该是指针的问题
3》内存访问错误,检查指针,是否为空,是否越界等
可能性 3 种
1:
char *p;
p = new char[number];
delete [] p;
....
// always using p....
p = xxx; // access violation
2:
char *p;
memcpy(p, xxx, number); // access violation
3:
char *p;
p = new char[number];
delete [] p;
.........
delete [] p; // access violation