HP-UX Itanium 上的内存分析工具

发布于 2024-12-14 04:56:05 字数 693 浏览 0 评论 0原文

寻找可用于检测 HP-UX Itanium 平台上静态/运行时内存泄漏的各种工具(免费/商业)。

背景,我们: 使用 HP-UX 11.31 ia64。但是,我们所有的应用程序仍然只有 32 位。 拥有包含来自 C/Pro*C/COBOL 的目标文件的软件以及包含大量文件/程序的大型应用程序。 C 文件使用标准 C 编译器 (cc) 进行编译,Pro*C 使用 Oracle 的 proc 进行编译,COBOL 使用 Microfocus 的 cob 进行编译。最后,所有目标文件都通过 cob 链接器进行链接。 面对核心转储,由于内存泄漏/无效引用(主要来自 C/Pro*C 代码)

尝试了什么: 使用gdb和RTC(用于内存分析的HP RunTimeCheck),但由于COBOL和C的混合性质,该工具无法提供重要线索。 计划使用Insure++,但发现HP-Itanium 不支持它。 目前,依靠静态调试和手动打印,但正如您所看到的,非常慢且效率低下。

任何人都可以建议可用于在这种情况下进行有效内存泄漏检测的工具/软件吗?

提前致谢。

附: 在网上搜索时,我发现了一种商业工具,但从未使用过。 http://www.dynamic-memory.com/products_Overview_htm.php

Looking for various tools (free/commercial) available for detection of memory leaks static/runtime on HP-UX Itanium platform.

Background, we:
Use HP-UX 11.31 ia64. But, all our applications are still 32bits only.
Have software with object files from C/Pro*C/COBOL and a very large application with lot of files/programs.
C files are compiled with standard C compiler (cc), Pro*C with Oracle's proc and COBOL with Microfocus' cob. Finally, all the object files are linked with cob linker.
Facing core dumps, due to memory leaks/invalid references (mostly from C/Pro*C code)

What was tried:
Used gdb and RTC (HP RunTimeCheck for memory analysis), but due to mixed nature of COBOL and C, the tool is not able to give vital clues.
Planned to use Insure++, but found that, it's not supported on HP-Itanium.
Currently, relying on static debugging and manual prints, but as you can see, very slow and ineffective.

Can anybody please suggest tools/software available to do effective memory leaks detection in this scenario.

Thanks in advance.

ps:
While searching on the web, I came across one commercial tool, but never used it though. http://www.dynamic-memory.com/products_Overview_htm.php

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤独岁月 2024-12-21 04:56:05

HP WDB 得到 HP 的以下用途认可:HP WDB

HP WDB is recognized by HP for these purposes: HP WDB

私藏温柔 2024-12-21 04:56:05

我们的 CheckPointer 工具可查找 C 程序中的内存管理错误。如果您没有犯任何此类错误,退出时它会告诉您未释放的内存被分配到哪里。

因为它在源代码上运行,所以它并不特别依赖于 Itanium 硬件,但它依赖于编译器(处理 GCC 3/4 + Microsoft C 方言)。您可以通过预处理 ProC 代码来生成 C,然后将 Checkpointer 应用于生成的 C 代码来处理 ProC。

您可能必须为 COBOL 代码构建一些包装器(以验证 COBOL 代码不会使用指针做坏事)。 COBOL 并没有真正执行大量动态分配/指针取消引用(注意 CALL 变量语句),因此此类包装器模型不应很复杂。

Our CheckPointer tool that finds memory management mistakes in C programs. If you have not made any such errors, on exit it will tell you where unfreed memory was allocated.

Because it operates on source code, it isn't specifically dependent on the Itanium hardware, but it is compiler-dependent (handles GCC 3/4 + Microsoft C dialects). The ProC you would handle by preprocessing the ProC code to produce C and then applying Checkpointer to the generated C code.

You will likely have to build some wrappers for your COBOL code (to verify that the COBOL code doesn't do something bad with a pointer). COBOL doesn't really do a lot of dynamic allocation/pointer dereferencing (watch out for CALL variable statements) so such wrapper models shouldn't be complicated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文