C 语言作为 Linux 系统上标准的编程语言给予了我们对动态内存分配很大的控制权。这种自由可能会导致严重的内存管理问题,可能导致程序崩溃或随时间的推移导致性能降级。
内存泄漏(即 malloc() 内存在对应的 free() 调用执行后永不被释放)和缓冲区溢出(例如对以前分配到某数组的内存进行写操作)是一些常见的问题,它们可能很难检测到。这一部分将讨论几个调试工具,它们极大地简化了检测和找出内存问题的过程
1. Memwatch简介
Memwatch是C语言的内存检测器。除了检测内存的功能外,它同样可以做其它的一些事情,而我们主要还是在于讲述它的基本功能。如果你真的想要知道所有相关的具体细节,可详细查看头文件memwatch.h以及源代码。
它使用C于处理器的功能,Memwatch使用它自己定义的功能函数取代所有在你的程序中用ANSI C定义的内存分配函数,Memwatch的内存分配函数包含了了所有的分配记录信息。
Memwatch可以在交叉编译后的目标板上运行。
2. Memwatch功能
(1) 主要有基本的内存管理函数
-mwMalloc()
-mwFree()
-mwCalloc()
-mwRealloc()
(2) MemWatch能够检测的功能包括
-双重释放(double-free)、
-错误释放(erroneous free)、
-内存泄漏(unfreed memory)、
-溢出(Overflow)、
-下溢(Underflow)
3. 编译
当编译时, 相让memwatch起作用, 编译是加上-DMEMWATCH
4. memwatch.log内容
在正常操作的情况下,memwatch会创建一个名叫memwatch.log的文件。但有的时候,memwatch.log文件并不能被创建。此时,memwatch会尝试创建命名类似memwatNN.log的文件,其中NN是01到99之间的数字。如果还是失败,则没有log文件。
5. 应用实例
清单 1. 内存样本(test1.c)
#include stdlib.h
#include stdio.h
#include "memwatch.h"
int main(void)
{
char *ptr1;
char *ptr2;
ptr1 = malloc(512);
ptr2 = malloc(512);
ptr2 = ptr1;
free(ptr2);
free(ptr1);
}
清单 1 中的代码将分配两个 512 字节的内存块,然后指向第一个内存块的指针被设定为指向第二个内存块。结果,第二个内存块的地址丢失,从而产生了内存泄漏。
现在我们编译清单 1 的 memwatch.c。下面是一个 makefile 示例:
test1
gcc -DMEMWATCH -DMW_STDIO test1.c memwatch
c -o test1
当您运行 test1 程序后,它会生成一个关于泄漏的内存的报告。清单 2 展示了示例 memwatch.log 输出文件。
清单 2. test1 memwatch.log 文件
MEMWATCH 2.67 Copyright (C) 1992-1999 Johan Lindh
...
double-free: 4 test1.c(15), 0x80517b4 was freed from test1.c(14)
...
unfreed: 2 test1.c(11), 512 bytes at 0x80519e4
{FE FE FE FE FE FE FE FE FE FE FE FE ..............}
Memory usage staTIsTIcs (global):
N)umber of allocaTIons made: 2
L)argest memory usage : 1024
T)otal of all alloc() calls: 1024
U)nfreed bytes totals : 512
MEMWATCH 为您显示真正导致问题的行。如果您释放一个已经释放过的指针,它会告诉您。对于没有释放的内存也一样。日志结尾部分显示统计信息,包括泄漏了多少内存,使用了多少内存,以及总共分配了多少内存。
串口调试工具软件免费串口调试工具软件免费2022-01-05 08:52:433工具集成窜口网口MODBUS调试工具免费工具集成窜口网口MODBUS调试工具,还集成电气电工计算工具。(工具安全无毒,但360等杀毒会报错,建议删除安装)2022-01-04 15:44:275Arduino用作usb转ttl串口调试工具Arduino用作usb转ttl串口调试工具直接上代码,上传到arduino即可。TX接TX, DX接DXvoid setup() { // put your setup code here2021-12-28 19:57:110ubuntu 串口调试工具推荐_串口调试能有多便捷?——FUR组件的应用就是最近忙着做项目,忽然发现有3个项目都需要用到串口调试,这让我感觉到有一个方便快捷的调试工具是非常重要的。虽然类似的功能有很多现成的、功能强大的开源协议,比如MODBUS。但是我看过之后,总觉得2021-12-23 19:44:520mini shell命令行调试工具(单片机、c语言)@mini shell命令行调试工具介绍Mini shell 命令行调试工具(单片机、c语言)Mini shell是一个特别适合低内存的单片机上使用的一个命令行调试工具,就算是51单片机上仅需几个2021-11-29 10:21:116EtherCAT运动控制卡的辅助调试工具与方法介绍EtherCAT运动控制卡的辅助调试工具与方法介绍2021-11-12 15:42:0678【嵌入式Linux学习】调试利器之GDB快速入门指南的,UNIX/LINUX操作系统下的、基于命令行的、功能强大的调试工具, 是嵌入式linux开发人员必不可少的工具。2021-11-02 14:06:208Linux嵌入式 gdb VSCode图形化调试教程linux 领域我们最常用的就是GDB 调试工具,通过GDB 来调试嵌入式C 程序。本章我们首先学习如何搭建嵌入式Linux的GDB 调试环境,然后讲解如何使用GDB 工具调试C 程序。GDB简介gdb 工具是GNU 项目调试器,基于命令行。和其他的调试器一样,我们可以使用gdb 来一行行的运行程序2021-11-02 12:21:139嵌入式linux c语言,嵌入式LinuxC语言开发工具.pdf2 章 嵌入式Linux C 语言开发工具本章目标任何应用程序的开发都离不开编辑器、编译器及调试器,嵌入式Linux 的C 语言开发也一样,它也有一套优秀的编辑、编译及调试工具。掌握这些工具的使用2021-11-01 17:38:514嵌入式linux开发工具总结1.嵌入式linux开发工具-编译器gcc(静态库 动态库的制作)可以制作库 库的使用2.嵌入式linux开发工具-调试器gdb(调试方法)目标:可以调试简单的错误以及内存错误3.嵌入式linux2021-11-01 16:32:005嵌入式Linux测试工具嵌入式Linux测试工具1 Nbench—性能测试工具nbench的结果主要分为MEM、INT和FP,其中MEM指数主要体现处理器总线、CACHE和存储器性能,INT当然是整数处理性能,FP则体现双2021-11-01 16:26:121搭建嵌入式Linux开发环境(一) 串口调试工具简介UART串口是嵌入式设备最为常用的调试和通讯接口之一,无论是RS232还是RS422/485都有着非常广泛的应用,因此本文就基于嵌入式Linux演示在Linux环境下使用minicom进行串口2021-10-20 19:36:084CAN总线调试工具QCOM_V1.6软件CAN总线调试工具QCOM_V1.6软件2021-07-05 13:24:4322串口调试工具串口调试工具2021-04-28 13:53:410modbus调试工具modbus调试工具2021-04-28 13:50:040蓝牙调试工具BTool v1.40.5资源蓝牙调试工具BTool v1.40.5资源2021-04-23 11:24:145蓝牙串口调试工具使用绘图小程序蓝牙串口调试工具 卓晴老师,您好,我专业主要学习机械自动化的,但是只玩机械太没有意思了,我就开始自学电路,编程,学控制,大二时参加了"飞思卡尔"智能车竞赛。 当时边学边做,经常碰到各种bug,调试2021-04-09 11:56:082020CC Debugger调试工具SmartRF_Flash_Programmer入口CC Debugger调试工具SmartRF_Flash_Programmer入口2021-03-10 09:42:567XCOM串口调试工具2.0版应用程序免费本文档的主要内容详细介绍的是XCOM串口调试工具2.0版应用程序免费。2020-11-04 16:54:0326山外调试工具合集和使用手册等资料合集免费本文档的主要内容详细介绍的是山外调试工具合集和使用手册等资料合集免费包括了:解码器,字库资料,多功能调试助手使用教程,山外DAP助手,山外VT助手,山外多功能调试助手(大分辨率版),山外多功能调试助手,山外调试仿真助手——使用教程,山外字库菜单助手。2020-09-01 08:54:515Linux后台开发常用调试工具nm 程序可用于列举符号及其类型和值,但是,要更仔细地研究目标文件中这些命名段的内容,需要使用功能更强大的工具。其中两种功能强大的工具是objdump和readelf。2020-08-14 16:28:20895TCP和UDP Socket调试工具应用程序免费本文档的主要内容详细介绍的是TCP和UDP Socket调试工具应用程序免费。2020-07-15 15:05:472如何利用基于字节码插桩实现的多线程调试工具,提出一种新的多线程调试工具,并给出顺序点概念。设计用于调试的线程调度语言,在字节码层面对测试程序进行插桩,使线程按照期望的顺序调度。在此基础上实现一个 Eclipse上的调试插件。实验结果表明,与现有工具 Imunit相比2020-07-06 14:21:1612MODBUS调试工具ModScan应用程序免费本文档的主要内容详细介绍的是MODBUS调试工具ModScan应用程序免费。2020-05-15 12:13:0118plc控制系统的调试工具合格的调试、维修工具是进行plc系统调试与维修的基本条件。plc变频控制柜用的调试与维修工具主要有以下几种。2020-03-10 16:05:401430蓝牙BLE数据通讯调试工具软件和使用手册免费本文档的主要内容详细介绍的是蓝牙BLE数据通讯调试工具软件和使用手册免费。2020-01-14 16:15:1614fireflyROC-RK3308B主板CC-ADB调试工具简介ADB,全称 Android Debug Bridge,是 Android 的命令行调试工具,可以完成多种功能2019-10-28 20:08:15541fireflyCORE-RK3328主板JD4--Adb调试工具简介Adb 是 Android Debug Bridge 的简称,是 Android 的命令行调试工具,可以完成多种功能,如跟踪系统日志、上传文件、安装应用等。2019-10-28 19:49:10717使用Qt编写的串口调试工具的应用程序和源代码资料免费本文档的主要内容详细介绍的是使用qt编写的串口调试工具的应用程序和源代码资料免费。2019-12-17 17:24:1258fireflyAIO-3288C主板ADB调试工具介绍adb,全称 Android Debug Bridge,是 Android 的命令行调试工具,可以完成多种功能,如跟踪系统日志,上传文件,安装应用等。2019-10-28 19:32:16499山外调试工具资料合集和教程免费本文档的主要内容详细介绍的是山外调试工具资料合集和教程免费包括了:串口、菜单、DAP、VT、KEA编程助手2019-12-05 18:02:040山外调试工具资料合集和教程免费本文档的主要内容详细介绍的是山外调试工具资料合集和教程免费包括了:串口、菜单、DAP、VT、KEA编程助手2019-12-05 18:03:0722Firefly-RK3128主板ADB调试工具介绍adb,全称 Android Debug Bridge,是 Android 的命令行调试工具,可以完成多种功能,如跟踪系统日志,上传文件,安装应用等。2019-10-28 19:24:402170局域网版人脸机调试工具应用程序免费本文档的主要内容详细介绍的是局域网版人脸机调试工具应用程序免费。2019-11-21 12:57:019TCP UDPSocket调试工具应用程序和GPRS DTU数传应用的基础知识合集本文档的主要内容详细介绍的是TCP UDPSocket调试工具应用程序和GPRS DTU数传应用的基础知识合集。2019-11-14 17:52:276Firefly-RK3399命令调试工具ADB介绍adb,全称 Android Debug Bridge,是 Android 的命令行调试工具,可以完成多种功能,如跟踪系统日志,上传文件,安装应用等。2019-10-28 19:21:033095在Eclipse IDE环境下如何使用TRACE32调试工具进行项目开发MCU/SoC系统开发调试工具厂商劳特巴赫技术有限公司(Lauterbach)提供的TRACE32调试和跟踪工具已经被广泛的应用在通信/家用电子,汽车电子,医疗器械及工业控制等高端市场的程序调试和跟踪领域,为无数的行业领导企业带来了巨大的便利和效益。2018-08-29 15:54:122132ASP微型调试工具应用程序免费asp微型调试工具是一款绿色小巧实用的免费的ASP本地调试工具。它能够帮助用户把自己的机子当服务器使用,而并再需要安装IIS,一个文件即可解决所有问题。asp微型调试工具使用非常方便,只需将这一个2019-05-30 16:26:481keil调试工具Keil Array Visualization V1.0示波器工具软件和教程本文档的主要内容详细介绍的是keil调试工具Keil Array Visualization V1.0示波器工具应用程序和 Keil Array Visualization V1.0 keil mdk 波形显示 数组曲线显示 曲线显示 示波器显示使用教程免费。2019-05-23 17:25:3223使用GDB命令行调试器调试C/C++程序GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。相比于VS里面的图形化调试工具,其功能更加强大。2019-04-02 14:31:46529初学GDB调试工具需要注意的事项GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。相比于VS里面的图形化调试工具,其功能更加强大。2019-04-02 14:31:41566MeeGo操作系统DBus调试工具嵌入式linux中文站向广大嵌入式linux爱好者介绍一下MeeGo的DBus调试工具。2019-04-02 14:04:491267蓝牙串口调试工具应用程序免费本文档的主要内容详细介绍的是蓝牙串口调试工具应用程序免费。2019-04-04 16:21:4825JDY-30 SPP蓝牙模块的介绍和串口调试工具及蓝牙串口免费本文档的主要内容详细介绍的是JDY-30 SPP蓝牙模块的介绍和串口调试工具及蓝牙串口免费。2019-03-23 09:15:4121串行端口实用调试工具应用程序免费本文档的主要内容详细介绍的是串行端口实用调试工具应用程序免费。2019-03-11 22:21:493AIR202Luat系列教程之调试工具LuaTools的使用指南资料免费本文档的主要内容详细介绍的是AIR202Luat系列教程之调试工具LuaTools的使用指南资料免费。2019-02-20 15:22:0213CAN调试工具应用程序的详细资料免费本文档的主要内容详细介绍的是CAN调试工具应用程序的详细资料免费。2018-12-14 17:37:5618如何使用英特尔SDK for OpenCL调试工具调试OpenCL主机和内核代码了解如何使用英特尔®SDKfor OpenCL™调试工具来调试OpenCL™主机和内核代码2018-11-02 16:32:453776串口调试工具comdebug应用程序免费本文档的主要内容详细介绍的是串口调试工具comdebug应用程序免费。一款很好用的串口调试助手,速度很快,操作简单。2018-10-30 16:23:0649串口调试小程序火灾报警器调试工具C语言程序免费本文档的主要内容详细介绍的是串口调试小程序火灾报警器调试工具C语言程序免费。2018-10-22 17:47:3328现在超级强的串口调试工具应用程序软件免费本文档的主要内容详细介绍的是现在超级强的串口调试工具应用程序免费。2018-10-17 16:52:574关于在线调试工具E1的特点介绍在线调试工具E12018-07-20 15:43:422223关于在线调试工具EZ-CUBE的特点及应用介绍在线调试工具EZ-CUBE2018-07-20 15:45:013872关于在线调试工具minicube2的特点介绍在线调试工具minicube22018-07-20 15:44:462641在线调试工具e8a的特点性能介绍在线调试工具e8a2018-07-20 15:44:532668如何启动QNX及使用调试工具的方法该演示由QNX中国团队提供。展示了在Altera Cyclone V SoC上如何启动QNX,以及如何使用调试工具等等2018-06-11 13:57:055324介绍Lauterbach调试工具的应用该演示由Lauterbach中国团队提供,展现您如何通过Lauterbach强大的嵌入式调试工具Trace32来调试和分析运行在Altera Cyclone V SoC芯片上面的软件。Lauterbach调试工具支持几乎所有操作系统的在线调试和追踪。2018-06-11 13:57:013675关于在线调试工具EZ-CUBE参考设计的一场讲座这一讲由瑞萨电子公司MCU产品中心钟雪日讲座:在线调试工具EZ-CUBE参考设计。2018-06-11 14:12:052232ADB工具(安卓 & Linux调试)安卓 & Linux调试:ADB工具。2018-05-17 10:06:4515MODBUS调试工具(modscan32)安全MODBUS调试工具(modscan32)安全2018-04-24 16:34:0654常用的软件测试工具有哪些_10款常用的软件测试工具推荐一个好的软件测试工具和测试管理工具结合起来使用将会使软件测试效率大大的提高。那么软件测试工具有哪些呢?本文汇总了十款常用的软件测试工具,具体的详情跟随小编一起来了解一下。2018-04-24 14:18:2466714AS:可视化的调试工具--FreeRTOS+Trace在AS开发库中,除了直接用于程序嵌入的库和内核以外,还有用来调试的工具。对于FreeRTOS而言,相对的线程和任务调度是比较难于用普通的设置断点,进行参数跟踪来实现的。因此,一种可视化的调试工具就被2020-09-25 13:13:012835EC20调试工具及其AT指令(TCP).exe文件是调试工具.ini文件是AT指令配置文件在调试工具中点击“多字符串”,即可发送查看和发送AT指令此AT指令集应用于TCP client模式2018-02-01 11:20:27157FBUS串口调试工具 v1.2绿色免费版FBUS串口调试工具是一款简单易用的串口调试工具,主要应用于串口设备通讯、串口程序调试。软件小巧,使用方便。 功能介绍 FBUS串口调试工具既可以测试串口设备到串口设备的数据传输,也可以测试串口设备2017-12-13 16:08:31267实例分析LINUX系统的静/动态集成调试模式现有的嵌入式LINUX系统开发过程中,所有的工程师都疲惫于使用两种不同的调试模式分别调试系统的内核和应用程序。首先通过一个JTAG调试工具来配置和启动LINUX系统;嵌入式LINUX系统正常运行起来2017-11-06 11:09:140浅谈Abatron硬件调试工具支持Cavium处理器瑞士硬件工具制造商Abatron宣布它的Linux硬件调试工具现在支持Cavium的Octeon和Octeon Plus处理器。这家公司宣称:Abatron的BDI2000 和 BDI3000 调试工具2017-10-20 10:09:201gdb调试器解析,如Visual Studio自带的设置断点、单步跟踪等,都受到了广大用户的赞赏。那么,在Linux下有什么很好的调试工具呢? gdb调试器是一款GNU开发组织并发布的UNIX/Linux下的程序调试工具。虽然,它没有图形化的友好界面,但是它强大的功能也足以与微软的Visu2017-10-18 13:55:380CY8CKIT-002 PSoC®MiniProg3 PSoC 3/5编程及调试工具CY8CKIT-002 PSoC®MiniProg3 PSoC 3/5编程及调试工具2017-10-10 10:46:1231ESP8266调试工具ESP8266调试工具2017-04-28 09:23:2654SONY_CCD软件调试工具与板机通信接线说明SONY_CCD摄像头软件调试工具与板机通信接线说明2017-04-20 16:36:5813最新jlink调试工具安装包Jlink_Windows_V612最新jlink调试工具安装包Jlink_Windows_V612f_22017-01-21 18:04:0120串口调试工具串口调试工具2016-12-27 23:23:39119常用网络调试工具[4]常用网络调试工具_v1.0rc2016-12-23 19:50:554单片机开发调试工具包单片机开发调试工具包,学习51单片机必备的工具2016-11-11 12:28:227TCPUDPDebug1027_Setup_TCPUDP网络调试工具TCP&UDP测试工具,感兴趣的小伙伴们可以瞧一瞧。2016-10-05 17:09:3345SmartCortex_M3-1700工具软件-以太网PC机软件_TCP-UDP调试工具SmartCortex_M3-1700工具软件-以太网PC机软件-TCP-UDP 调试工具2016-06-30 14:31:330AirSync Debugger使用指南_微信蓝牙协议调试工具AirSync Debugger使用指南_微信蓝牙协议调试工具2016-06-23 11:38:3522ESP8266调试工具V2.2乐鑫2无线wifi芯片测试工具,ESP8266调试工具V2.2,免费。2016-05-15 13:55:19480舵机调试工具飞思卡尔智能车舵机调试工具,其他舵机调试可自行修改舵机参数处理2016-02-19 20:25:276舵机调试工具舵机调试工具、直流电机的速度控制+测试程序。2016-02-14 16:51:075串口调试工具串口调试工具 便于单片机 串口调试工具 串口调试工具2015-11-19 17:40:0623TCPUDPDbg_网络调试工具TCPUDPDbg(网络调试工具)~~~~~~~~2015-11-08 13:18:256android fastboot/adb 驱动调试工具android fastboot/adb 驱动调试工具,用于fastboot烧录和adb调试android2015-11-02 10:33:074tcpudpdebug_setup_TCPUDP网络调试工具TCPUDP网络调试工具,可用于最简单的网络连接测试2015-10-28 16:17:3956混合串口调试工具_软件软件名称:Commix混合串口调试工具软件版本:1.0 软件作者:周陈平作者邮件:ggenien@163.com 软件容量:193KB 软件语言:简体中文授权形式:免费软件应用平台:Win95/98/NT/2000 发布日期:2012-09-17 08:59:4849最新串口通讯调试工具_支持:串口通讯 实现了对计算机串口进行操作,并进一步可以实现两台电脑之间的通讯,及控制IC卡机,单片机等,是工业控制人士的必备工具. 串口调试工具是一款计算机串口通信调试工具,本工具集功能2012-09-17 08:49:5168USB接口调试工具飞外提供了 USB 接口调试工具,希望您用的上。2011-06-23 16:35:00318Commix混合串口调试工具很好的串口调试工具,能够混合输入、显示16进制数、10进制数、ASCII字符,能按多种常用方法(如Modbus等)自动加入校验,还可将设定好的参数保存为注册表文件,尤其适合做工业控制2011-05-11 17:11:3184LINUX和WINDIWS服务器的统一管理初探LINUX和WINDIWS服务器的统一管理初探2010-07-30 23:11:4823实用FPGA的调试工具—ChipScope Pro实用FPGA的调试工具—ChipScope ProChipScope Pro应用于FPGA调试阶段,它具有传统逻辑分析仪的功能,可以观察FPGA内部的任何信号,触发条件,数据宽度和深度等的设2010-02-09 15:10:4693MCU51的串口调试工具MCU51的串口调试工具:本站会员 gxujjd 及sltian 推荐的Mcu51网站的免费串口调试工具。此版本使用C++Builder编写.2010-01-16 11:53:46117并口开发调试工具包源码并口开发调试工具包源码:开发调试工具包包括三个功能模块:“并口调试器”、“并口测试信号发生器”和“并口监视器”2009-10-12 10:39:2056AVR单片机反汇编器 (AVR单片机开发调试工具)AVR单片机反汇编器:AVR单片机开发调试工具(包括反汇编器功能) 当用菜单FILE 中的OPEN命令打开HEX格式.hex 文件时进入反汇编调试,窗口中出现反汇编后的程序,但这个不能保存,2009-10-12 10:19:34333TCP/UDP调试工具TCP-UDP调试工具,可以设置服务器模式和客服端模式。2009-09-28 13:02:0132嵌入式远程调试工具的研究与实现 在嵌入式软件开发中,调试是一个重要的环节,调试工具是衡量软件开发环境优劣的重要因素。本文对插桩方式的嵌入式远程调试工具进行了分2009-09-11 09:48:1216并口开发调试工具包 (推荐)并口开发调试工具包 (推荐):2009-05-27 10:15:2029并口开发调试工具包并口开发调试工具包:开发调试工具包包括三个功能模块:“并口调试器”、“并口测试信号发生器”和“并口监视器”。2009-05-26 09:53:3735基于EmJTAG的ARM嵌入式系统调试工具摘要 设计实现一个适用于基于EmJTAG的ARM嵌入式系统调试工具。它首先定义了一个轻量级的远程调试协议EmRDI,用于PC机与基于EmJTAG的ARM目标板之间的交互过程;然后描2009-03-29 15:13:24613gdb调试工具指南 (很详细的说明)gdb调试工具指南,很详细的说明。2009-03-28 09:52:4143FPGA调试工具-chipscopeFPGA调试工具chipscope,学习与使用FPGA必用的工具。。2009-03-23 09:45:0084