问题标签 [purify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
2055 浏览

memory-leaks - Rational Purify 无法跳转到内存泄漏

所以我的公司使用了一个令人愉快的错误程序,称为 Rational Purify(作为 Microsoft Visual Developer Studio 的插件)来管理内存泄漏。该程序旨在让您在遇到内存泄漏后单击它,然后跳转到发生泄漏的行。

不幸的是,Purify 出现故障,Purify 不会跳转到发生泄漏的地方,它只会提及发生泄漏的类和方法。不幸的是,有时这与雇用指南来帮助您狩猎熊并让他指出一样有用去森林告诉你那里有熊。

有 Purify 经验的人知道我该如何解决这个问题或有一本好的手册可以看吗?

0 投票
10 回答
15327 浏览

c++ - BoundsChecker 和 Purify 等 64 位工具

多年来,我使用了BoundsCheckerPurify这两个很棒的工具,但是这些应用程序的开发人员让我失望了,他们不再努力维护或开发它们。我们在两家公司都有公司帐户,他们都告诉我他们无意生产支持 64 位应用程序的版本。

任何人都可以推荐支持 64 位本机 C++/MFC 应用程序的开源或商业替代方案吗?

0 投票
1 回答
274 浏览

c++ - 使用 purify 处理 COR 转储问题


我使用 IBM purify 对 C++ 应用程序进行检测,我得到了问题 COR 转储,我的程序中止,尽管从终端运行时它运行良好。谁能告诉我这个 COR 转储是什么以及如何处理它?
平台:RHEL 64bit

谢谢,

0 投票
1 回答
1082 浏览

windows - 我如何知道可执行文件是否被增量链接?

我正在尝试使用 Purify 6 来分析我们使用 VC++ 2003 (7.1) 构建的一个可执行文件中的内存损坏。

当我使用以下命令检测二进制文件时:

仪器中止告诉我可执行文件是增量链接的。困惑的是,我检查了构建选项,但/INCREMENTAL:NO在那里。可以肯定的是,我重建了它,并且该选项在链接时正确传递。

有没有办法知道可执行文件是否被增量链接?

我看了看内容dumpbin /HEADERS,但没有看到任何相关内容。

谢谢。

0 投票
5 回答
14804 浏览

memory-leaks - Valgrind 与净化

哪个在 Linux 上更好?Valgrind 或 Purify 您对使用它们有何看法?

0 投票
4 回答
2769 浏览

php - 我的反 XSS 方法可以允许 PHP 中的用户 HTML 吗?

我正在寻找一种让用户提交数据的好方法,在这种情况下允许 HTML 并尽可能安全和快速。

我知道这个网站上的每个人似乎都认为http://htmlpurifier.org是这里的答案。我部分同意。 htmlpurifier拥有最好的开源代码,用于过滤用户提交的 HTML,但解决方案非常庞大,不利于高流量站点的性能。有一天我什至可能会使用那里的解决方案,但现在我的目标是找到一种更轻量级的方法。

我已经使用下面的 2 个功能大约 2 年半了,还没有出现任何问题,但我认为是时候从这里的专业人士那里获取一些意见,如果他们能帮助我的话。

第一个函数称为FilterHTML($string),它在用户数据保存到 mysql 数据库之前运行。第二个函数称为format_db_value($text, $nl2br = false),我在计划显示用户提交数据的页面上使用它。

这两个函数下面是我在http://ha.ckers.org/xss.html上找到的一堆 XSS 代码,然后我在这两个函数上运行它们,看看我的代码有多有效,我对结果,他们确实屏蔽了我尝试过的每一个代码,但我知道它显然仍然不是 100% 安全的。

你们可以看看它,给我任何关于我的代码本身甚至整个 html 过滤概念的建议。

我想有一天做一个白名单方法,但htmlpurifier是我发现的唯一值得使用的解决方案,正如我所提到的,它不像我想要的那样轻量级。

在网页上显示用户提交的代码时使用以下函数


下面的代码来自hackers.org,它们似乎都在我上面的函数中失败了

尽管还有更多,但我没有尝试该站点上的每个人,这只是其中的一部分。
原始代码在每组的最上面一行,运行完我的函数后的代码在下面一行。

0 投票
0 回答
852 浏览

continuous-integration - 如何将 Purify 集成到 Hudson CI 中?

我设置了一个 Hudson CI 系统,目前它用于构建项目和运行一些单元测试。我的下一步是将内存泄漏检测器 Purify 集成到构建周期中。现在我想在 purify 中启动单元测试,为此我创建了一个新的批处理任务,它运行以下命令:

正如我在 Purify 文档中所读到的,使用 /SaveTextData 选项是为了在 GUI 模式下运行 purify。如果我在命令行中的本地工作站上运行此命令,它将完美运行。但如果它是由 Hudson 发起的,则不会发生任何事情。可惜没有净化记录...

有没有人尝试过通过 Hudson 或任何其他 CI 系统开始净化?

提前致谢。

此致

马丁

编辑:我忘了告诉你,我让 Hudson 在不同的计算机上作为主从运行。在主服务器上,我配置了一个任务,该任务应该在从服务器上的 purify 中启动单元测试。我正在通过 JNLP 运行从站。

编辑 18.03.2010:

好的,所以最后我更接近问题的根源。

我发现,在本地净化中运行我的单元测试,日志文件 EngineCmdLine.log 包含三个命令。

我开始使用以下命令进行净化:

手动启动净化时EngineCmdLine.log的输出:

文件:D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestRunnerConsoleWD.exe

文件:C:\WINDOWS\system32\ws2_32.dll

文件:D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestDemoWD.dll

通过 Hudson 启动时的输出:

purify 的错误输出:

问题是,为什么 purify 使用 TestDemoWD.dll 库启动两次命令?

0 投票
1 回答
832 浏览

memory-leaks - 如何避免以下净化检测到的 C++ 内存泄漏?

我收到以下内存泄漏。它可能是由 std::string 引起的。我怎样才能避免它?

0 投票
1 回答
900 浏览

c++ - Purify 在类/结构填充上的 Uninit Memory Read (UMR)

我遇到了Purify的类/结构填充的非常烦人的副作用。例如

最后一行很可能会触发 UMR 警告,说访问了 3 个字节的初始化内存。这显然是一个误报:结构的最后三个字节中没有用户数据,它只是一个填充。

通常警告会很快填满日志文件,从而很难看到其他真正的问题。

有人知道抑制误报的方法吗?

0 投票
1 回答
762 浏览

c++ - 在使用 Purify 导致 SIGABRT 的 g++ 中引发异常是否存在已知问题?

实际上,我真正的问题是:以下代码中的指示行有什么问题吗(“Causes SIGABRT”):

我试图提出一个最小的测试用例发送给 IBM/Rational,以证明他们的 purify 软件存在问题,所以我首先由 SO 社区运行它。是的,我故意在第二行泄漏内存,是的,我知道当抛出异常时指针“泄漏”是统一化的。

上面的代码在使用 g++ 编译时在 purify 外部正常运行,但在 purify 内部运行时会导致核心转储。我在上面的代码中犯了一个新手错误(使 SIGABRT 成为我的错),还是我可以将矛头指向 IBM/Rational Purify?

编辑:(澄清)

不用purify在命令行运行,上面完整的程序打印:

在purify里面运行,净化报告:

请注意,在先决条件包括等之后,第 9 行最终成为我指出的行。