Questions tagged «code-analysis»

代码分析是分析应用程序代码以发现,查看,验证或验证应用程序某些属性的过程。这在开发过程中以及在将应用程序投入生产模式之前对其进行测试时非常有用,特别是对于检查与安全性相关的方面。

12
如何在php中执行静态代码分析?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 是否有用于PHP源文件的静态分析工具?二进制本身可以检查语法错误,但是我正在寻找功能更多的东西,例如: 未使用的变量分配 未先初始化就分配给的数组 以及可能的代码样式警告 ...

9
哪些静态分析工具可用于C#?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使它成为Stack Overflow 的主题。 6年前关闭。 这个问题的答案是社区的努力。编辑现有答案以改善此职位。它当前不接受新的答案或互动。 有哪些工具可用于针对C#代码进行静态分析?我知道FxCop和StyleCop。还有其他吗?我之前曾经碰过NStatic,但是它一直在开发中,似乎永远存在-从我所看到的内容来看,它看起来非常漂亮,因此,如果能看到今天的曙光,那就太好了。 沿着这些思路(主要是我对静态分析的兴趣),用于测试多线程问题(死锁,竞争条件等)的代码的工具似乎也很少。Typemock Racer刚刚弹出,所以我会看看。除此之外呢? 对于您使用过的工具的真实看法,我们将不胜感激。

8
Collection <T>与List <T>在界面上应使用什么?
代码如下所示: namespace Test { public interface IMyClass { List&lt;IMyClass&gt; GetList(); } public class MyClass : IMyClass { public List&lt;IMyClass&gt; GetList() { return new List&lt;IMyClass&gt;(); } } } 当我运行代码分析时,我得到以下建议。 警告3 CA1002:Microsoft.Design:将“ IMyClass.GetList()”中的“列表”更改为使用Collection,ReadOnlyCollection或KeyedCollection 我应该如何解决这个问题,这是什么好的做法?


13
如何修复PyDev“导入时未定义变量”错误?
我有一个在Eclipse中使用PyDev的Python项目,并且PyDev不断为我的代码生成错误错误。我有一个settings定义settings对象的模块。我将其导入模块b并使用以下属性分配属性: from settings import settings settings.main = object() 在我的一些代码(但不是全部)中,语句如下: from settings import settings print settings.main ...即使在代码运行没有问题的情况下,也会在Eclipse代码错误窗格中生成“从import:main导入未定义的变量”消息。我该如何纠正?

12
CA2202,如何解决这种情况
谁能告诉我如何从以下代码中删除所有CA2202警告? public static byte[] Encrypt(string data, byte[] key, byte[] iv) { using(MemoryStream memoryStream = new MemoryStream()) { using (DESCryptoServiceProvider cryptograph = new DESCryptoServiceProvider()) { using (CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptograph.CreateEncryptor(key, iv), CryptoStreamMode.Write)) { using(StreamWriter streamWriter = new StreamWriter(cryptoStream)) { streamWriter.Write(data); } } } return memoryStream.ToArray(); } } 警告7 CA2202:Microsoft。用法:对象“ …
102 c#  .net  code-analysis  fxcop 

1
解释器维护的整数缓存是什么?
深入研究Python的源代码后,我发现它维护了一个PyInt_Objects数组,范围从int(-5)到int(256)(@ src / Objects / intobject.c) 一个小实验证明了这一点: &gt;&gt;&gt; a = 1 &gt;&gt;&gt; b = 1 &gt;&gt;&gt; a is b True &gt;&gt;&gt; a = 257 &gt;&gt;&gt; b = 257 &gt;&gt;&gt; a is b False 但是,如果我在py文件中一起运行这些代码(或使用分号将它们结合在一起),结果将有所不同: &gt;&gt;&gt; a = 257; b = 257; a is b True 我很好奇为什么它们仍然是同一对象,所以我深入研究了语法树和编译器,提出了下面列出的调用层次结构: PyRun_FileExFlags() mod = PyParser_ASTFromFile() …

16
可视化代码流的工具(C / C ++)[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 您是否有任何工具可以简化了解C / C ++代码的任务?我们只是继承了由他人编写的大量软件,因此我们需要快速入门。关于可以简化此任务的工具的任何建议?
76 c++  c  code-analysis 

8
VS2015:警告MSB3884:找不到规则集文件
将WinForms VS2013项目升级到VS2015后,我开始看到MSB3884“找不到规则集文件”警告。 一次Google搜索显示了一篇MSDN文章,其中有Stack Overflow文章指向以及许多其他站点。 类似的问题:33020507 MSDN:VS2015 MSB3884警告 我同时安装了VS2013和VS2015。 提供警告的项目文件(以及未提供警告的项目)没有这些条目。 &lt;CodeAnalysisRuleSetDirectories&gt; &lt;CodeAnalysisRuleDirectories&gt; 如果我从项目文件中删除其他两个条目,那么问题就消失了,这很明显,因为没有设置规则文件。 &lt;CodeAnalysisIgnoreBuiltInRuleSets&gt; &lt;CodeAnalysisIgnoreBuiltInRules&gt; 我正在尝试使用msbuild从外部进行构建,但是VS2015也倾向于显示该问题。 有趣的是,如果我单击项目属性“代码分析器”区域中的“打开”按钮,则会得到文件。 指定不同的规则集没有区别。这使我认为可能存在环境变量设置,而没有想到任何设置。代码分析器是项目文件的功能。我可以添加目录属性,但共识是要取出路径&lt;CodeAnalysisRule*Directories&gt;。 GUI使用默认值: ' 这是一个典型的项目文件片段。 &lt;PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"&gt; &lt;DebugSymbols&gt;true&lt;/DebugSymbols&gt; &lt;OutputPath&gt;bin\x86\Debug\&lt;/OutputPath&gt; &lt;DefineConstants&gt;TRACE;DEBUG&lt;/DefineConstants&gt; &lt;DebugType&gt;full&lt;/DebugType&gt; &lt;PlatformTarget&gt;x86&lt;/PlatformTarget&gt; &lt;CodeAnalysisIgnoreBuiltInRuleSets&gt;true&lt;/CodeAnalysisIgnoreBuiltInRuleSets&gt; &lt;CodeAnalysisIgnoreBuiltInRules&gt;false&lt;/CodeAnalysisIgnoreBuiltInRules&gt; &lt;Prefer32Bit&gt;false&lt;/Prefer32Bit&gt; &lt;TreatWarningsAsErrors&gt;true&lt;/TreatWarningsAsErrors&gt; &lt;CodeAnalysisRuleSet&gt;BasicCorrectnessRules.ruleset&lt;/CodeAnalysisRuleSet&gt; &lt;/PropertyGroup&gt; &lt;PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"&gt; &lt;DebugSymbols&gt;true&lt;/DebugSymbols&gt; &lt;OutputPath&gt;bin\x64\Debug\&lt;/OutputPath&gt; &lt;DefineConstants&gt;TRACE;DEBUG&lt;/DefineConstants&gt; &lt;DebugType&gt;full&lt;/DebugType&gt; &lt;PlatformTarget&gt;x64&lt;/PlatformTarget&gt; &lt;CodeAnalysisRuleSet&gt;MinimumRecommendedRules.ruleset&lt;/CodeAnalysisRuleSet&gt; &lt;CodeAnalysisIgnoreBuiltInRules&gt;false&lt;/CodeAnalysisIgnoreBuiltInRules&gt; &lt;/PropertyGroup&gt; 在不从项目文件中删除“代码分析”行的情况下,尽管再次保存项目文件只会将其重新添加,但如何消除/修复警告?


1
代码分析窗口哪里去了?
在Visual Studio 2013中,我使用“代码分析”窗口为开发和管理团队提供了报告。 在Visual Studio 2015 Enterprise RTM中,这些错误已返回到错误窗口,我不再只能看到单个项目的CA问题,也不能按类型对其进行筛选。 有没有办法使“代码分析”窗口恢复原状?

2
如何找到C ++伪复制操作?
最近,我有以下 struct data { std::vector&lt;int&gt; V; }; data get_vector(int n) { std::vector&lt;int&gt; V(n,0); return {V}; } 此代码的问题在于,当创建该结构时,会发生复制,而解决方案是写return {std :: move(V)} 是否有lint或代码分析器可以检测到这种虚假的复制操作?cppcheck,cpplint或clang-tidy都无法做到这一点。 编辑:几点使我的问题更清楚: 我知道发生了复制操作,因为我使用了编译器浏览器,并且显示了对memcpy的调用。 通过查看标准yes,我可以确定发生了复制操作。但是我最初的错误想法是编译器将优化此副本。我错了。 这(可能)不是编译器问题,因为clang和gcc都产生产生memcpy的代码。 memcpy可能很便宜,但我无法想象在比复制std :: move指针更便宜的情况下,复制内存和删除原始内存是比较便宜的。 std :: move的添加是基本操作。我可以想象一个代码分析器将能够建议这种纠正。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.