使用指南:Scan-build静态代码分析工具

4星 · 超过85%的资源 需积分: 50 36 下载量 37 浏览量 更新于2024-09-20 收藏 157KB PDF 举报
"Scan-build是一个用于静态代码分析的命令行工具,它可以在代码构建过程中集成静态分析器,帮助开发者找出潜在的错误和问题。通过重写编译环境变量,scan-build能够利用伪编译器(默认基于gcc)来编译代码并执行分析。基本用法是在构建命令前添加'scan-build'。" Scan-build是一个专门用于静态代码分析的工具,它允许开发者在不中断正常构建流程的情况下,对代码进行深入的检查。这个工具的核心功能是在编译期间同步运行静态分析器,这样可以在代码实际执行之前发现潜在的缺陷、错误和不安全的行为。静态分析是一种不依赖于程序运行的检查方法,它可以有效地在早期阶段捕获问题,从而提高软件质量。 Scan-build的工作原理是通过替换原有的编译环境,使用一个伪编译器来替代真实的编译器(如gcc或clang)。这个伪编译器不仅负责编译代码,还会调用静态分析器对源代码进行检查。当构建过程完成后,scan-build会生成一个web格式的报告,显示分析结果,方便开发者查看和理解。 使用scan-build非常简单,只需要在通常的构建命令(如'make'或'xcodebuild')前加上'scan-build'。例如,`scan-build make`会执行一次带有静态分析的构建。scan-build支持命令行选项,可以自定义分析的细节,例如,通过传递特定的编译选项来调整分析行为。 在实际应用中,可能需要根据项目的具体编译环境调整scan-build的配置。scan-build的文档提供了详细的指导,帮助开发者解决可能遇到的问题,确保工具能够在各种情况下正确地工作。例如,如果项目使用的是非默认的编译器或者有特殊的编译步骤,可能需要设置环境变量或指定额外的命令行选项。 Scan-build是一个强大的静态分析工具,它增强了开发者的代码审查能力,能够在早期阶段发现并修复问题,提高了软件的可靠性和安全性。通过简单的命令行集成,scan-build成为了开发者持续集成和质量保证流程中的有力辅助工具。
2019-09-06 上传
fortify扫描工具的说明手册,对实际工作有指导作用,讲的比较清晰。 Fortify SCA分析原理 Front-End 3rd party IDE Java Pug-In C/C++ MicrOsoL NET IBM.eclipse Audit workbench PLSQL XML Analysis Engine Semantic fdi/ fpr Gobal Data flow N Control Flow Configuration Structural Fortify Manager NST Rules builder Custom Pre-Packaged FORTIFY Fortify SCA分析过程 SCA Engine Intermediate Scan phase fles Using Analyzers Tt transation (NST) .Rules Analysis Result File -b build id 阶段一:转换阶段( Translation) 阶段二:分析阶段(Scan o sourceanalyzer-b <build-id>-clean o sourceanalyzer -b <build-id> sourceanalyzer-b <build-id> -Xmx1250m-scan-f results fpr FORTIFY Fortify SCA扫描的工作 Visual studio Eclipse, IBM RAD 面 Audit Workbench Java,. Net Fortify Global Build Tool C, C/C++ Analysis JSP Touchless Build Fortify PL/SQL IDE Intermediate FPR TSOL Model Cold Command Line Interface Fusion 运己 Fortify I m Manager Secure Coding Rules Fortify Customized Rules Rules FORTIFY Fortify SCA扫描的五种方式 插件方式: Plug-In(Eclipse, vs WsAd,rad) 命令行方式 Command line ●扫描目录方式: Audit workbench scan Folder 与其他工具集成: Scan with ANt, Makefile ●编译监控器方式: Fortify SCA Build Monitor FORTIFY Fortify SCA扫描的四个步骤 Fortify SCA扫描总共可以分为四个步骤: ●1. Clean:清除阶段: sourceanalyzer -b proName -clean 2. Translation:转换阶段 3.ShoW-fe:查看阶段 sourceanalyzer -b proName -show-files 4.scan:扫描阶段 sourceanalyzer-b proName -Xmx1250m -scan -f proName. fpr FORTIFY Fortify SCA命令行参数说明 查看SCA扫描命令及参数→> sourceanalyzer ca\ C:\VIRDoS\syste32\cd. exe 川 icrosoft Windows XP[版不5.1268g Kc版权所有1985-2 061 Microsoft Gorp :Documents and settings anming >sourceanalyzer --he lp Fortify Source Code Analyze4..日.回153 Copyright (c>2003-2006 Fortify Software Usage Bu⊥1d Java: sourceanalyzer -b <buildid> <files> sourceanalyzer -b <buildid> javac <compiler opts> <files> G/C++: sourceanalyzer -b <buildid> <compiler> <compiler opts> <files> NET: sourceanalyzer -b <buildin> <exe file> scan〓 sourceanalyzer -b <buildid> -scan -f results. fpr Output opt ions -format <fmt> Controls the output format. Valid options are auto, fpr. fvdl, and text. Default is auto for which type will be determined automatically based on file extension 一£<fi1e> The file to which results are written Default is stdout build-pro ject <name> The name of the project being scanned. Will be inc luded in the output bu⊥1d-1abe1<labe1> The1abe1 of the project being scanned.W主工1 be inc luded in the output build-version <version> The version of the project being scanned. wil1RTIFY. e uale OFTWARE Fortify SCA转换源代码 转换Java代码 Java程序命令行语法 JaVa命令行语法例子 转换J2EE应用程序 使用 Find bugs 转换NET源代码 o. NET Versions 1.1 and 2.0 Visual studio. net version 2003 o Visual studio.net version 2005 转换CC++代码 ●转换 PL/SQLITSQL FORTIFY SCA转换JAVA源代码命令 sourceanalyzer -b <build-id> -cp <classpath> <file-list> ●附注参数:-Xmx;- encoding-jdk;- appserver- appserver- veron -appserver-home Table 1: File specifiers File specifier Description darna盈e All files found under the named directory or any subdirectories dx己盈e/古古 Any file named Example. java found under the named Example java directory or any subdirectories dx22盈e/,ava Any file with the extension. j ava found in the named directory dxna盈e吉/古,java Any file wth the extension j ava found under the named directory or any subdirectories d工22a盈e/方/吉 All files found under the named directory or ary subdirectories (same as dirname FORTIFY