一款适用于ARMv5tejl架构的C++内存泄漏检测工具推荐

4

我一直在尝试理解我的应用程序中是否存在任何内存泄漏问题,该应用程序在Freescale MX28板上运行,使用armv5。

我尝试探索valgrind,但了解到它不支持armv5而是支持armv7。

我正在寻找任何好的工具来继续进行。


1
这是否意味着源代码无法构建以在另一个目标架构(例如x86)上执行? - Brian Cain
我曾经在一个嵌入式Linux系统上遇到过同样的问题(你的目标系统使用的是Linux吗?)。我无法在目标系统上编译和运行valgrind。要么你的代码是可移植的(或者相关部分是可移植的),可以在基于x86的Linux系统上运行和测试,要么你必须依赖@Brendan Shanks答案中提到的工具之一。 - πάντα ῥεῖ
@ Brain,是的,它只能在我的目标平台上运行,这个平台是armv5和freescale MX28开发板。 - linux developer
@g-makulik 是的,我无法在目标设备上运行valgrind。我可以使用ARM架构构建,但当我将其移动到目标设备时,当我运行valgrind时会出现非法操作的提示。我有些困惑... - linux developer
@linuxdeveloper 所以你可以尝试 Brendan Shanks 的建议。我认为尝试在目标系统上正确构建valgrind将比其价值更高。无论如何,您仍然可以尝试在可以正确运行valgrind的Linux系统上编译要测试的代码(如果您有真正的硬件依赖性,则可以尝试在测试环境中模拟驱动程序)。 - πάντα ῥεῖ
2个回答

3

我正在寻找大多数支持C的工具。你知道一些支持C++的工具,适用于我的上述环境设置吗? - linux developer
@linuxdeveloper 我认为工具主要支持C并不重要。C++内存管理最终都会归结为glibc标准接口。 - πάντα ῥεῖ

-1
如果您的系统可以将输出发送到网络,则有一个C / C ++库可与您的代码一起编译和链接,以便让您通过基于Web浏览器的运行时查看系统中内存使用情况。例如:当前总内存使用情况、内存是否被破坏、双重删除、不匹配的新[] / delete、泄漏等。
您的系统是否有以太网/ tcp / ip / socket堆栈或RS232串行端口可用以发送输出?如果您有串行端口,则可以使用能够进行RS232 < - > TCP/IP双向通信的小型设备。您还可以使用带有串行端口的Linux框架和一些软件来代理以太网和RS232之间的通信。
在尝试将其嵌入式系统之前,如果您有兴趣在Linux/ BSD/ Mac/ Windows上看到此功能的工作情况,请告诉我。示例C++有缺陷的代码带有典型的内存错误,并且可以unzip文件并执行“make”命令,从而可以在桌面/智能手机浏览器中观察操作。您的Freescale MX28板运行哪个操作系统?

我对你的解决方案很感兴趣。请问在哪里可以找到它? - Carles Araguz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接