我正在Ubuntu 12.10上运行Clang
3.4(来自http://llvm.org/apt/)。我对一些代码运行了分析器(clang
–analyze),发现了两个问题:
Blah.C:429:9: warning: Declared variable-length array (VLA) has zero size
unsigned char separatedData[groupDataLength];
^~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
但是具体问题并不重要。我想知道得出该结论的步骤(代码很复杂,我无法在15分钟内看到它)。
我从Clang网站上看到了一个屏幕截图,其中显示了在Web浏览器中查看的工作步骤:
这可能是从Xcode获得的。
问题是:如何让Clang从命令行输出这样的工作步骤? 或者,如果愿意,甚至将结果输出到浏览器?这将大大提高分析仪的实用性,并加快修复速度。
(我已经注意到,GCC的文档非常出色,但是Clang / LLVM的文档非常差。我尝试了“ clang –analyze
-Xanalyzer’-v’”作为暗中尝试,以告诉分析仪更加冗长–Xanalyzer开关来自手册页。)
除了控制台上的文本输出外:
clang++ --analyze -Xanalyzer -analyzer-output=text main.cpp
您可以获取完整的html输出:
clang++ --analyze -Xanalyzer -analyzer-output=html -o html-dir main.cpp
此外,您可以选择要启用的特定检查器。此页面列出了可用的检查。例如,可以使用标志启用alpha组中的所有C ++检查:
-Xanalyzer -analyzer-checker=alpha.cplusplus
http://coliru.stacked-crooked.com/a/7746c4004704d4a7
main.cpp:5:1: warning: Potential leak of memory pointed to by 'x'
}
^
main.cpp:4:12: note: Memory is allocated
int *x = new int;
^~~~~~~
main.cpp:5:1: note: Potential leak of memory pointed to by 'x'
}
^
显然前端暴露
-analyzer-config
<选项名称> = <值>
例如
-analyzer-config -analyzer-checker=alpha.cplusplus
它可能会得到更好的支持,-Xanalyzer
并且可能会扩展到支持单个检查器的选项:http : //lists.cs.uiuc.edu/pipermail/cfe-
dev/2014-October/039552.html
所有的, 请指导我,如何在dos窗口中打印下面命令的o/p?由于不熟悉dos命令,我不知道下面的字符串是什么意思? 提前谢谢
当在下面运行时,将打开代码提示符,并显示java版本信息。我想打印java版本信息。请帮帮我
问题内容: 如何执行Bash命令并从Java收集输出? 大家好,基本上,我正在编写一个基本的控制台应用程序,并且希望能够从中运行命令,例如sudo ***,halt,ifconfig等。 有见识吗? 问题答案: 您可以为此使用processBuilder API。请参阅此示例。
在获得了必要的数据之后,其实已经完成了整个命令行工具的核心功能了。 但是作为一个命令行的工具,还是比较好的输出形式以增强用户体验。 增添色彩 使用colors可以为命令行工具的输出增添色彩。 var colors = require('colors'); console.log('Color'.green); 只需要简单的在字符串之后添加想要输出的颜色即可。具体支持的颜色可以移步其npm或者Git
我正在编写一组groovy脚本,用作Jenkins管道库的一部分。目前我正在使用普通的老JUnit来测试它们,但我想切换到Spock。我只是通过调用下面的groovy脚本从命令行运行测试。 我试图找出运行Spock规范的等效脚本。我的第一次尝试是将SYSPROP_TEST_PATTERN切换到。我有一个<代码>...Spec.groovy文件,写在
问题内容: 在Python中,通过而不是打扰其输出来调用命令的最短和标准方法是什么。 我尝试了,但是似乎返回了输出。我对此并不感到烦恼,我只需要在不使输出混乱的情况下静默运行程序即可。 如果有帮助,我正在打电话给我,我的意图只是打电话给我。 问题答案: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)