VS调试记录

此文仅以记载自己编程犯下的傻B错误,记录调试过程。

问题1:

将VC6.0编译通过的代码复制到VS2010中,出现以下错误:

error C2440: “=”: 无法从“char [9]”转换为“LPCWSTR”

IntelliSense: 不能将 "char *" 类型的值分配到 "LPCWSTR" 类型的实体:

解决1:

1、工程使用了UNICODE字符集,把你的 "字符串" 包含的字符串修改为 _T("字符串") 。

2、不使用UNICODE字符集即可。操作:项目->XX属性->配置属性->常规->项目默认值->unicode中的字符值改为未设置


问题2:

在dialog中添加了radio button控件,但在VS2010中的类向导中找不到控件ID,因此无法添加关联的变量

解决2:

将radio button的属性组中的group选为true,即可。


问题3:

无效的堆指针。错误如图:

由Expression:_CrtIsValidHeapPointer(pUserData)可知,由于出现了无效的堆指针。

概念:

1、栈区(stack)———  由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈,地址是由高向低减少的。 
2、堆区(heap) ———  一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事。是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 
3、全局区(静态区)(static)——— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 
4、文字常量区 ——— 常量字符串就是放在这里的。 程序结束后由系统释放 
5、程序代码区 ——— 存放函数体的二进制代码。

导致如上问题,应该是由malloc、free导致内存分配、释放导致的错误。常见如下:

1、malloc与free配套使用。不要跨进程分配和释放; 
2、指向malloc申请的堆内存的指针,在运用过程中千万不要另外赋值,否则同样导致内存泄露
3、malloc后,实际使用时指针长度超过了你申请的范围。再去free时肯定出问题。
4、改变指针的初始指向地址。

解决3:

调整free(pointer)的位置,设置断点调试。直到找出导致错误的具体位置,在具体分析。(我的问题是第3条:超出实际申请内存范围所导致的错误)。


问题4:

错误莫名奇妙。症结如下:

1、头文件中,定义的类class A{  } ; 末尾的分号没加。

2、头文件嵌套的问题:

//----A.H----//
#pragma once
#include "b.h"
class A
{
public :
    B m_b;
};
//----B.H----//
#pragma once
#include "a.h"
class B
{
public :
    A m_a;
};
在A类中,定义了B类的成员变量,同样,在B类中,定义了A类的成员变量。以上头文件嵌套方法将出现问题。

解决4:

在类前加上类的申明即可。

//----A.H----//
#pragma once
class B;
class A
{
public :
    B m_b;
};
//----B.H----//
#pragma once
#include "a.h" //此处也可为: class A;
class B
{
public :
    A m_a;
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行atom代码调试时,首先需要确保安装了相应的调试插件,比如debugger或者node-debugger。然后,打开需要调试的代码文件,可以在需要设置断点的行号上点击添加断点,或者直接在代码中使用debugger关键字来设置断点。接着,通过菜单栏或快捷键启动调试模式,选择对应的调试配置文件,比如Node.js或Chrome浏览器。启动调试后,可以使用各种调试工具来观察变量的值、执行代码、单步调试等。在调试过程中,可以根据需要添加、移除或者禁用断点,以便更精准地定位问题。一旦发现问题,可以通过观察变量的值或者代码执行路径来找到原因,并进行相应的修改。调试完成后,记得保存代码并关闭调试模式,以确保代码的稳定性和可靠性。 值得注意的是,atom代码调试记录需要及时记录下来,可以使用注释、文档或者专门的调试记录文件来记录问题、解决方案和调试过程中的心得体会。这些记录对于今后遇到类似问题时能够提供宝贵的经验和参考,也有助于团队内部知识共享和团队合作。另外,及时分享调试记录也有利于帮助其他人解决类似问题,提高团队整体的开发效率和质量。 总之,atom代码调试记录不仅是解决问题的有力工具,也是提高开发效率和团队合作的重要手段。通过不断积累和分享调试记录,可以不断提升团队的开发水平和整体实力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值