window调试学习3——内存调试

动态内存分配错误有以下两种基本类型:内存错误和内存泄露。

当一个指针或者该指针所指向的内存单元成为无效单元,或者内存中分配的数据结构被破坏时,就会造成内存错误。指针未被初始化、指针被初始化为一个无效地址、指针被不小心错误地修改、在与指针相关联的内存区域被释放以后使用该指针(这种指针被称为虚悬(dangling)指针),这些都会使指针变为无效指针。当通过一个错误指针或者虚悬指针对內存进行写入,或者是将指针强制转换为不匹配的数据结构,又或者是写数据越界的时候,内存本身也会遭到破坏。删除未被初始化的指针,删除非堆指针、多次删除同一指针或者覆盖一个指针的内部数据结构,都会造成内存分配系统错误。总之,C++中的内存错误有无数种可能发生的原因。


写内存越界

在调试版本里,对内存的写越界时,如果是写上溢就会收到“DAMAGE: after block”(内存破坏:在块的后面)的跟踪消息,如果是写下溢就会收到“DAMAGE: before block”(内存破坏:在块的前面)的跟踪消息。但是,只有在内存的破坏发生在数据区的前后四个字节里时,上面的消息才会出现。如果写溢出超过了保护字节,对内存的写越界不会被发现。因为内存的崩溃通常就发生在内存破坏的后面,所以你可以使用数据断点对导致崩溃的代码进行跟踪。



内存泄漏

内存泄漏在被动态分配的内存没有被释放的时候产生。有很多种情况会导致内存地漏,例如没有在全部的执行路径中释放内存(特别是在那些具有多个返回语句和具有异常抛出的函数中),没有在析构程序中释放所有的内存,或者是忘记将基类析构函数设记为虚函数,还有可能是很简单的情形:忘记释放内存。

怎样查看内存泄漏:

在内存中,“VM Size”表示进程在整体上的内存使用量(包括位于物理内存内部和外部的内存),而“Mem Usage”表示进程的物理内存使用量(也称为进程的工作集)。通常,发生内存漏洞的征兆就是在虚拟内存上发生了增长,而不是在工作集上发生了波动。这个可以在任务管理器中查看。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Window BLE调试软件是一款专门用于蓝牙低功耗(BLE)设备调试的软件。它可以在Windows操作系统上运行,并提供了一系列工具和功能来帮助开发人员调试和测试BLE设备。 首先,Window BLE调试软件提供了一个直观的界面,以便用户可以轻松地与BLE设备进行交互。通过该软件,用户可以扫描并发现附近的BLE设备,查看设备的广播数据,并选择要连接的设备。 其次,该软件还提供了一个详细的属性视图,显示了连接的BLE设备的特征和服务。用户可以查看设备的各种属性,如UUID、读写权限、值等。这样,开发人员可以更好地了解和调试BLE设备的功能和特性。 此外,Window BLE调试软件还包括一个调试控制台,允许用户与BLE设备进行数据交换。开发人员可以发送自定义命令和数据到设备,观察设备返回的数据。这对于调试设备的各种功能和协议非常有用。 最后,Window BLE调试软件还支持数据记录和分析。用户可以将设备发送和接收的数据记录下来,并进行分析和调试。这有助于开发人员检查设备的数据传输是否正常,以及发现潜在的问题和错误。 总之,Window BLE调试软件是一款强大的工具,为开发人员提供了一个方便和高效的方式来调试和测试BLE设备。它的功能丰富,界面友好,对于任何从事BLE设备开发的人来说都是一款不可或缺的软件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值