问题标签 [cppdepend]

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 投票
0 回答
165 浏览

c++ - 使用 cppdepend 检测未受保护的代码以审计调用链中缺少的外部保护?

我正在尝试检测其调用者中不受更高级别保护子句保护的代码。我认为我可以与cppdepend非常接近,但不确定我是否可以准确地识别问题。

我有一堆代码需要锁定保护,所以我们在最里面的函数有一个断言:

请注意,这eventQueue是 type 的静态实例EventQueue

我想检测调用包含该断言的函数的所有位置,并且在它们的调用者链中的某个点没有保护对象的实例。

所以,如果在调用者链中的某个点有一个表达式是可以的:

但是,如果调用在其上方IsCurrentEventGuarded没有该保护实例的情况下发生,我们就会发现应该检测到的问题。

我可以找到使用子句创建防护(即:我们可以忽略的好方法)的上层防护方法:

理想情况下,我应该能够忽略这些方法之上和之下的所有内容。

一个更有趣的子句找到了两组方法 - 那些在Guarding Methods之下(在一个守卫和测试之间)和那些在我们想要的调用链中,不受保护的。

找到 65 个方法,它们在调用链中低于锁或更高且无人看管

0 投票
1 回答
1784 浏览

ndepend - CppDepend 与 NDepend

CppDepend和NDepend都是由同一家公司开发的,并且似乎基于相同的代码库并共享一些功能。我还没有找到并排比较网站。

我在几个没有任何 c++ 代码的普通 c# 解决方案上工作,但也有除 c# 之外还包含 c++ 托管代码和 c++ 本机代码的解决方案。

如果我想要所有项目类型的完整功能集,我真的需要购买这两种工具吗?是否需要使用 CppDepend 打开我的混合解决方案和使用 NDepend 的仅 c# 解决方案?似乎 NDepend 无法分析 c++ 项目,但是当我使用 CppDepends 打开解决方案时,我在同一个解决方案中失去了我的 c# 项目的一些 NPDepend 功能。如果 NDepend 可以将 CppDepend 作为插件/扩展加载,那就太好了,但这是不可能的,对吧?

0 投票
1 回答
424 浏览

c++ - cpp依赖。问题?发行说明?社区?支持?

发现了一个用于分析大型项目的 cppdepend工具。但正如我所见,它有一些问题。

例如,主要和关键(对我来说)是一些依赖关系,我自己在代码中看到,cppdepends 没有看到并告诉元素彼此独立。正如我所见,问题出在 C++ 代码中的模板和宏附近。

所以我试着想办法避免这个问题,也许我可以帮助 cppdepend 查看这个依赖关系。谷歌搜索对我没有帮助。我没有找到任何社区/论坛/组/博客,开发人员(包括来自 cppdepend 团队的)可以讨论此工具以找到他们问题的答案。最后的博客,问题报告可以追溯到2010 年

此外,官方网站不包含任何发行说明、错误报告、“新功能”列表。

令人难以置信的是,所有关于如此强大的工具的参考资料,顺便说一下有文档、视频、课程等,都只出现在这样的帖子中:

“你会推荐什么工具?”

“试试 cppdepend。”

0 投票
1 回答
391 浏览

c++ - 如何查看 cppdepend 的分析流程(例如基类不应该使用派生类)

我在玩 cppdepend,
有一件事让我很烦恼:
它列出了某些违​​反“基类不应使用派生类”的类。但我没有找到一种方法来准确查看基类在何处以及如何使用衍生物。可以做到吗?顺便说一句,我在 Win 上使用评估版。

0 投票
1 回答
582 浏览

c - 使用 cppDepend 绘制 C 源代码的调用图

我在使用 cppDepend 工具时遇到问题。我有一个用 C 语言编写的源代码,我需要绘制它的依赖关系或调用图。cppDepend 的编译器的源代码扩展名设置为 c;cpp;cxx;cc 但是当我想在 C 中打开源代码时,文件选择框只让我选择 C++ 中的源代码。

我应该怎么办????

0 投票
0 回答
84 浏览

visual-studio - CppDepend插件崩溃Visual Studio

安装 CppDepend 插件后,我无法启动 Visual Studio( 2012 和 2013 )。

提供的一些信息窗口可能会有所帮助:

有没有办法来解决这个问题?

0 投票
1 回答
48 浏览

cppdepend - CPPDepend 检测虚函数使用情况

我对 CPPDepend 检测虚函数使用的能力有一点小问题。考虑以下场景。两个类,CParentClass 和 CChildClass,其中 CChildClass 派生自 CParentClass。CParentClass 有一个虚函数Test,CChildClass 覆盖了Test 的基类版本。

在使用方面,出于各种原因,我想做以下事情:-

这会导致 pMyChild 的 Test 函数根据需要被调用,但 CPPDepend 没有检测到这一点,并声称永远不会到达代码。如果我将“虚拟”一词添加到 CChildClass 中的测试函数头(除了已经在 CParentClass 中的那个),那么 CPPDepend 声称一切正常。

任何人都可以为我阐明这一点,因为我应该将 virtual 放在派生类函数和基类函数中感觉不对。

在派生类中使用 CDialog 析构函数可以看到类似的问题。如果派生类析构函数声明中没有 virtual,CPPDepend 会抱怨。

谢谢你提供的所有帮助。

问候

尼尔。

0 投票
3 回答
380 浏览

c++ - 我们如何检测源代码中的所有指针比较?C++

我们想从一个类类型中找到所有的指针比较。例如,我们有一个类 A 和从 A 派生的类,如 B、C 等。

所有比较,如 if (pa == pa2) 或 if (pa != pb) 都必须在我们的源代码中找到。

我知道我们可以使用 CLang 分析器来查找这些比较,但我们的源代码与 CLang 不兼容。我们正在使用 Visual Studio 2015。

请不要给出这样的解决方案;从源代码中删除 A 类,然后尝试编译它,以便从 A 类中找到它没有编译的所有用法。

有没有人找到它的解决方案?像 CppCheck(检查可能的错误)或 Visual Studio 扩展这样的工具?

编辑:

有谁知道,我怎样才能在我的代码中使用 CppDepend/CQLinq 语法找到所有比较?它也可以帮助我。CppDepend 使用 CLang,但如果它有解析错误,它会继续解析。

0 投票
1 回答
47 浏览

ndepend - CPPdepend LCOM 指标查询

我试图使用 CppDepend 获取 LCOM 指标报告。我写了以下查询

但是这个查询只为代码中的头文件提供表值。它不报告 Cpp 文件的值。

请帮忙,因为我是这样做的新手。

0 投票
1 回答
358 浏览

c++ - Cppdepend C++ linux基础

我正在尝试为 C++ 项目生成代码指标,该项目不是Visual Studio 项目,而是在 Linux 上编写的。

我尝试了Project Maker并按照除了最后一部分之外的步骤(添加源文件后,您可以指定项目属性)。我不知道该输入什么。所以,我继续进行,在开始分析时,它给出了很多铿锵声解析错误,例如

在“path/xyx.hpp”中找不到“string”文件 在“path/ii.hpp”中
找不到 fstream 文件

虽然我可以看到xyx.hpp有一条线#include <string>