Klocwork K7使用要點培訓(xùn)7.7_第1頁
Klocwork K7使用要點培訓(xùn)7.7_第2頁
Klocwork K7使用要點培訓(xùn)7.7_第3頁
Klocwork K7使用要點培訓(xùn)7.7_第4頁
Klocwork K7使用要點培訓(xùn)7.7_第5頁
已閱讀5頁,還剩92頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Klocwork

產(chǎn)品使用要點培訓(xùn)

k7.7內(nèi)容簡介KlocworkK7.7環(huán)境KlocworkK7.7安裝KlocworkK7.7安裝后設(shè)置用Klocwork分析C/C++項目分析VisualStudio項目分析Tornado項目常見問題處理/編譯器設(shè)置/知識庫及其他用Klocwork分析Java項目環(huán)境要求操作系統(tǒng)支持有條件支持環(huán)境要求硬盤空間安裝所需空間在安裝過程中,完全安裝Klocwork需要400-450M的硬盤空間,僅安裝引擎工具需要250M,EnterpriseDeveloper需要20M硬盤空間。數(shù)據(jù)存儲所需空間Klocwork的數(shù)據(jù)包括projects_root目錄、源文件、配置文件、Klocwork編譯表以及Klocwork數(shù)據(jù)庫。一次構(gòu)建中每MLOC代碼產(chǎn)生的數(shù)據(jù)目錄將消耗大約400M硬盤空間,但這個數(shù)字高度取決于被分析的應(yīng)用程序語言及其復(fù)雜度。在Windows平臺下,并且使用預(yù)編譯頭文件,內(nèi)存最小需要2G。度量和趨勢分析每一百萬行代碼需要大約100M空間。對于小型或中等規(guī)模的構(gòu)建,每一次項目構(gòu)建需要300M。環(huán)境要求磁盤空間空間占用實例環(huán)境要求Windows下推薦使用NTFS文件系統(tǒng);對于非NTFS系統(tǒng),大小寫不敏感的文件系統(tǒng)(FAT32),您需要確保所有的命令以正確的大小寫來拼寫并正確執(zhí)行,以避免Klocwork數(shù)據(jù)庫異常。支持Java1.4.2的系統(tǒng)環(huán)境環(huán)境要求瀏覽器瀏覽器要啟用Cookies支持環(huán)境要求客戶端環(huán)境要求內(nèi)容簡介KlocworkK7.7環(huán)境KlocworkK7.7安裝KlocworkK7.7安裝后設(shè)置用Klocwork分析C/C++項目分析VisualStudio項目分析Tornado項目常見問題處理/編譯器設(shè)置/知識庫及其他用Klocwork分析Java項目安裝1、執(zhí)行安裝程序安裝2、顯示W(wǎng)elcome頁面安裝3、同意軟件許可;4、選擇安裝目錄(建議目錄盡量短,如:d:\Klocwork77)安裝5、選擇安裝類型;安裝6、選擇projects_root目錄如:d:\Klocwork\projects_root,注意:projects_root目錄的最大路徑長度不要超過68-72字符,這取決于MySQL端口號長度(1-5位數(shù))安裝7、繼續(xù)完成安裝;8、將license文件復(fù)制到<projects_root>\licenses目錄下;LINUX、Solaris安裝1、不要以root用戶登錄系統(tǒng);2、安裝文件.sh文件,修改此.sh文件的訪問模式,使之能夠執(zhí)行;chmod755kw-enterprise-installer[1]..linux.sh3、執(zhí)行安裝文件:kw-enterprise-installer[1]..linux.sh-i<install_dir>-p<projects_root_dir>4、將license文件復(fù)制到<projects_root>\licenses目錄下內(nèi)容簡介KlocworkK7.7環(huán)境KlocworkK7.7安裝KlocworkK7.7服務(wù)器用Klocwork分析C/C++項目分析VisualStudio項目分析Tornado項目常見問題處理/編譯器設(shè)置/知識庫及其他用Klocwork分析Java項目四個服務(wù)機器端口認(rèn)識Klocwork的4個服務(wù)及其占用的端口lm27000License服務(wù)器tomcat8068Web服務(wù)器mysql3311數(shù)據(jù)庫服務(wù)器rmimanager1103分析引擎調(diào)度服務(wù)器用戶訪問方式1、運行用戶訪問方式設(shè)置程序:啟動菜單->Klocwork7.7->KlocworkSecurityConfiguration;或命令行:kwauthconfig;2、選擇要設(shè)置的projects_root;3、選擇四種方式之一:None任何用戶都可以使用KlocworkBasic設(shè)置指定的用戶可以使用KlocworkNIS與NIS服務(wù)器集成,NIS用戶可以使用KlocworkLDAP與LDAP服務(wù)器集成,LDAP用戶可以使用Klocwork常用的服務(wù)器管理命令啟動和停止Klocwork服務(wù)查看服務(wù):kwservicecheck<projects_root>啟動服務(wù)kwservicestart<projects_root>kwservicestart<projects_root><server_name>Server_name:lm,tomcat,mysql,rmimanager停止服務(wù)kwservicestop<projects_root>kwservicestop<projects_root><server_name>Server_name:lm,tomcat,mysql,rmimanager常用的服務(wù)器管理命令修改Klocwork服務(wù)設(shè)置在改變服務(wù)器主機配置和避免端口沖突時使用kwserviceset-service-property<projects_root><server_name><property><value>如:kwserviceset-service-propertyd:\klocwork\projects_rootlmhostserver1----修改license服務(wù)器主機設(shè)置與Tornado環(huán)境的license端口號(27000)可能會沖突,可使用kwserviceset-service-propertyd:\klocwork\projects_rootlmport28000----修改license服務(wù)器端口號改進(jìn)性能的參數(shù)<klocwork_install>/config/java_wrappers.confkmc…-Xmx512Mkwadmin…-Xmx512M設(shè)置缺省配置文件在KMC中,從展開Systemconfigurationfiles,右鍵點擊problems_default.pconf.xml,選擇Editinadvancededitor,打開KlocworkConfigurationEditor,選擇要分析的缺陷和安全漏洞類型;在<projects_root>\projects\workspace\rules目錄下,編輯修改metrics_default.mconf、usagerules_default.uconf、java_default.jpconf.xml文件建議的缺陷類型設(shè)置在缺省設(shè)置的基礎(chǔ)上,進(jìn)行如下更改:Defects->CodingStyle->AssignmentinConditionDefects->CodingStyle->Unreachablecode->UnreachablecodeDefects->MemoryManagementProblems->FreeingUnallocatedMemory->FUM.BIN.MIGHTDefects->MemoryManagementProblems->FreeingUnallocatedMemory->FUM.BIN.MUSTDefects->MemoryManagementProblems->FreeingUnallocatedMemory->FUM.ZERO.MUSTDefects->MemoryManagementProblems->FreeingUnallocatedMemory->FUM.ZERO.MIGHTDefects->NullPointerDereference->NPD.FUNC.CALL.MIGHTDefects->NullPointerDereference->NPD.FUNC.CALL.MUSTDefects->NullPointerDereference->NPD.CONST.CALLDefects->UseofUninitializedData->UNINIT.HEAP.MIGHTDefects->UseofUninitializedData->UNINIT.HEAP.MUST如果不關(guān)心安全漏洞的話,建議取消如下缺陷類型:SecurityVulnerabilities->InjectionFlawsSecurityVulnerabilities->UnvalidatedUserInput

內(nèi)容簡介KlocworkK7.7環(huán)境KlocworkK7.7安裝KlocworkK7.7安裝后設(shè)置用Klocwork分析C/C++項目分析VisualStudio項目分析Tornado項目常見問題處理/編譯器設(shè)置/知識庫及其他用Klocwork分析Java項目用Klocwork分析C/C++項目五種方法1桌面kwinforce和kwinforce

plugin分析2用SourceRootDirectories分析3用BuildSpecificationFiles分析4用VisualStudioProject,SolutionorWorkspace分析5用Tables分析1桌面kwinforce和kwinforce

plugin分析個人桌面環(huán)境,分析一個或幾個文件用IDE插件kwinforce–hostcyber209–port1102–license-hostcyber209–port27000--errors-configd:\Klocwork75\config\problems_default.pconf.xml–metrics-configd:\Klocwork75\config\metrics_default.mconfcvs

main.c

test.c發(fā)現(xiàn)跨模塊的缺陷,需要kmcproject的支持kwinforce–hostcyber209–port1102–license-hostcyber209–port27000–projectcvs

main.c

test.c占用license較多2用SourceRootDirectories分析從源代碼根目錄進(jìn)行分析,分析根目錄下所有的指定后綴的源文件2用SourceRootDirectories分析設(shè)置IncludesSystemIncludesMacroDefinitions2用SourceRootDirectories分析缺點需要知道程序的includes/systemincludes/macrodefinition,軟件的這些設(shè)置多的時候,手工設(shè)置很累無法剔除無用的源文件不能確定頭文件調(diào)用的正確次序因此,這種方法不推薦使用3用BuildSpecificationFiles分析首先從構(gòu)建進(jìn)程產(chǎn)生BuildSpec(構(gòu)建配置)對VC6:kwDspParser<dsp/dswfile>-c<build_config>-o<spec_name>.out對VS2003、2005kwVcprojParser<vcproj/slnfile>-c<build_config>-o<spec_name>.out對其他make類或編譯批處理腳步類kwinject-o<spec_name>.out<make/buildbatchcmmand>3用BuildSpecificationFiles分析用KMC從BuildSpec創(chuàng)建項目進(jìn)行分析3用BuildSpecificationFiles分析是首選方法,尤其對文件數(shù)量很多的情況下最為方便、最為準(zhǔn)確;真實體現(xiàn)了構(gòu)建的過程和配置選項3用BuildSpecificationFiles分析生成buildspec的其他方法編譯環(huán)境太復(fù)雜,kwinject無法直接生成buildspec;采用修改makefile、修改構(gòu)建腳本、kwwrap配置文件、環(huán)境變量等方法來實現(xiàn);4用VisualStudioProject,SolutionorWorkspace分析僅使用于VC6和VS2003、2005dsp/dsw/vcproj/sln文件作為輸入進(jìn)行分析分析結(jié)果與使用buildspec相同5用Tables分析從中間文件進(jìn)行分析適用于僅僅改變了要分析的缺陷和安全漏洞類型的分析可以節(jié)省分析時間分析項目的其他設(shè)置-OptionsReportOptions分析項目的其他設(shè)置-OptionsGenerateClustersreport:是否產(chǎn)生Cluster報告,Cluster是源文件之間循環(huán)依賴的一組文件;Donotreportwarnings:報告只包括Error級別的缺陷,隱藏Warning級別的缺陷;Showfullfilepaths:報告中包括每個文件的全路徑信息;Generateproblemfilter:創(chuàng)建一個過濾文件用于隱藏不希望看到的缺陷;Ignoreheaderfindings:不要報告關(guān)于頭文件的缺陷;Showunmatchedrules:列出不適用的規(guī)則,例如某個規(guī)則規(guī)定了某個軟件實體的接口關(guān)系,但在被分析軟件中根本沒有這個實體,那這個規(guī)則就是unmatchedrulePrintverbosemessagesduringexecution:輸出分析過程中處理的文件和鏈接階段信息分析項目的其他設(shè)置-OptionsDetailalloccurrencesofusagerulesviolations輸出違反每個架構(gòu)規(guī)則的所有關(guān)系(缺省只列出每個違反規(guī)則的一個關(guān)系)Groupsimilarerrors:將發(fā)生情況相同的同一類缺陷在Klocwork報告中歸納為一個。分析項目的其他設(shè)置LoadtheMetricsandTrendingdata確定是否將缺陷趨勢分布數(shù)據(jù)存入MetricsandTrending數(shù)據(jù)庫分析項目配置完成后,進(jìn)行分析右鍵點擊項目,從右鍵菜單點擊build或buildsetup分析的時候要選擇一個臨時目錄存放Klocwork中間系統(tǒng)文件,臨時目錄可以重用分析分析時提示選擇一個臨時目錄存放分析的中間結(jié)果,這個目錄必須是空目錄,如果使用的不是空目錄,需要選擇ReuseTablesDirectory框,選擇目錄后,點擊”Build”,進(jìn)行分析檢查構(gòu)建是否正確在日志文件中查找?parseerror?,?syntaxerror?和?cannotinclude?信息成功的構(gòu)建不應(yīng)有任何以上信息如果有許多parseerrors-可能是一個《unclean》的構(gòu)建集成,盡管某種特殊情況下解析時也會發(fā)現(xiàn)這種信息丟失includes/parseerrors可能的原因是:丟失了–I選項丟失了宏定義錯誤的環(huán)境變量丟失了缺省的編譯器includes和定義不支持編譯器的某種擴展kwcc(Klocwork編譯器)的解析問題丟失了cygwin下的鏈接目錄,DOS無法找到分析結(jié)果ProjectCentral查看分析結(jié)果http://server_name:8068分析結(jié)果點擊工具條上的放大鏡,可以按不同文件不同級別不同缺陷狀態(tài)和不同缺陷類型進(jìn)行條件組合查詢分析結(jié)果可以進(jìn)行詳細(xì)程序代碼分析分析方法的選擇VisualStudio程序,優(yōu)先選擇buildfromVisualStudioprojectfiles的方式看程序是否具備用buildspec進(jìn)行分析的條件;一般只要程序能夠構(gòu)建成功,就能夠采用這種方法;如果無法生成buildspec,再考慮采用Sourceroot的方式kwinforce只適用于開發(fā)人員的桌面環(huán)境如果源代碼沒有修改,只是要分析不同的缺陷類型,可以從tables開始進(jìn)行分析內(nèi)容簡介KlocworkK7.7環(huán)境KlocworkK7.7安裝KlocworkK7.7安裝后設(shè)置用Klocwork分析C/C++項目分析VisualStudio項目分析Tornado項目常見問題處理/編譯器設(shè)置/知識庫及其他用Klocwork分析Java項目分析VisualStudio項目以VisualStudio項目為例,演示分析項目的過程,其他類型的程序過程都是一樣的分析的計算機必須安裝相應(yīng)的VisualStudio開發(fā)環(huán)境;分析VisualStudio項目新建項目File->NewProject…選擇源文件后綴點擊Next分析VisualStudio項目選擇用VisualStudioProject,SolutionorWorkspace分析從KMC選擇dsp、dsw、sln、vcproj文件這種方法最簡單并且通常是有效的點擊Next分析VisualStudio項目選擇構(gòu)建的設(shè)置點擊Next分析VisualStudio項目選擇報告選項建議按圖中設(shè)置選擇點擊Next分析VisualStudio項目確定是否將本次分析結(jié)果導(dǎo)入MetricsandTrending數(shù)據(jù)庫可以點擊Finish,然后修改配置文件,再分析如果保持缺省配置文件,可以直接點擊BuildNow分析VisualStudio項目點擊Build之后,提示選擇一個臨時目錄存放分析的中間結(jié)果,這個目錄必須是空目錄,如果使用的不是空目錄,需要選擇ReuseTablesDirectory框,選擇目錄后,點擊”Build”,進(jìn)行分析分析VisualStudio項目構(gòu)建過程中,查看Status中的提示,如果有Error提示,需要停止分析或者分析完成之后查看分析日志build.log內(nèi)容簡介KlocworkK7.7環(huán)境KlocworkK7.7安裝KlocworkK7.7安裝后設(shè)置用Klocwork分析C/C++項目分析VisualStudio項目分析Tornado項目常見問題處理/編譯器設(shè)置/知識庫及其他用Klocwork分析Java項目分析Tornado項目-編譯器設(shè)置Tornado項目是用makefile進(jìn)行編譯的典型采用Buildspecification(.out文件)的方法Tornado編譯器一般不在Klocwork缺省設(shè)置中,請打開<Klocwork_install>\config\kwfilter.conf文件(以CCPPC和LDPPC為例):在filter gnu gcc,g++,cc,c++一行末尾添加編譯器filter gnu gcc,g++,cc,c++,CCPPC在filter ar

ar一行末尾添加鏈接器filter ar

ar,LDPPC分析Tornado項目-自動獲取編譯配置的方法一首先找到Tornado項目目錄下的Makefile文件然后,打開命令行窗口:運行Tornado環(huán)境設(shè)置批處理文件(linux平臺路徑可能不同):<Tornado_install>\host\x86-win32\bin\torvars.bat運行makeclean,清理已經(jīng)進(jìn)行過的構(gòu)建,或者手工刪除已生成的目標(biāo)文件make-fMakefileclean運行Klocworkinject命令,提取構(gòu)建配置kwinject-okwinject.outmake-fMakefile然后,在KMC中按照用buildspecificationfiles構(gòu)建的方法進(jìn)行分析分析Tornado項目-自動獲取編譯配置的方法二有時候,Tornado的項目無法用命令行進(jìn)行make;這種情況下,可使用kwwrap方法;打開Tornado項目,在Target上點擊右鍵,選擇Properties,在打開的窗口中,選擇compiler頁面,在下面的編譯器文本框里,原有編譯器前面加上kwwrap–od:\a.trace;linker和Assembler同樣操作;然后,在項目上點擊右鍵,選擇“dependencies…”在Tornado里面rebuild;注意:.trace文件是追加的,下一次重新生成的時候,把上次的.trace刪除,否則,會有重復(fù)記錄.trace文件要給出絕對路徑,避免編譯過程轉(zhuǎn)換工作目錄造成混亂執(zhí)行:kwinject-tD:\was\was.trace-od:\was\was.out分析Tornado項目創(chuàng)建項目分析Tornado項目點擊Next,選擇BuildfromBuildSpecificationFiles,并選擇kwinject生成的.out文件分析Tornado項目點擊Next,設(shè)置報告選項:點擊Next,設(shè)置是否將分析結(jié)果存入質(zhì)量趨勢分析數(shù)據(jù)庫如果立即分析,點擊BuildNow如果以后分析,點擊Finish內(nèi)容簡介KlocworkK7.7環(huán)境KlocworkK7.7安裝KlocworkK7.7安裝后設(shè)置用Klocwork分析C/C++項目分析VisualStudio項目分析Tornado項目常見問題處理/編譯器設(shè)置/知識庫及其他用Klocwork分析Java項目分析項目的常見問題一dsw文件中的dsp項目有互相依賴關(guān)系,直接分析dsp/dsw可能會報告錯誤;解決:采用buildfromspecificationfiles方法;對VC6:kwDspParser<dsp/dswfile>-c<build_config>–o<spec_name>.out對VS2003、2005kwVcprojParser<vcproj/slnfile>-c<build_config>-o<spec_name>.out分析項目的常見問題二Status報告了分析的時候出現(xiàn)了錯誤:分析項目的常見問題二這種錯誤最可能的原因是找不到相關(guān)的頭文件例如:系統(tǒng)頭文件使用了第三方的庫文件;使用的系統(tǒng)頭文件,klocwork不能自動將系統(tǒng)設(shè)置提取出來;解決方法:首先從build.log查找缺少哪些頭文件;用buildspecification方法,生成.out文件;修改.out文件中的config段的內(nèi)容,加入所需的頭文件;分析項目的常見問題二從build.log查看缺少哪些頭文件,第一次點擊ViewFullLog按鈕會提示輸入文本編輯器的名稱(如:Notepad、UEdit32)分析項目的常見問題二用buildspecification方法,生成.out文件修改.out文件中的config段:如果是系統(tǒng)頭文件:加入-J<sys_include_paths>如果是用戶頭文件:加入-I<user_include_paths>如果是預(yù)編譯宏定義:加入-D<macro_definition>逐個加入,以分號(;)分隔,無空格分析項目的常見問題二然后用修改后的.out文件進(jìn)行分析檢查build.log,有問題再次修改.out文件直到?jīng)]有error報告為止分析常用的知識庫定制例:非標(biāo)準(zhǔn)內(nèi)存管理函數(shù)(mymalloc與myfree)的知識庫設(shè)置void*mymalloc(intsize)手工創(chuàng)建一個知識庫文件如:manual.kb,加入如下行:mymalloc-DMEMmygroup,allocmymalloc-BPSbytesize($$)=$1myfree-FREEmygroup$1分析常用的知識庫定制定制的知識庫的使用在項目中導(dǎo)入.kb文件,然后進(jìn)行build,即可分析常用的知識庫定制class=NPD這種類型的記錄用于聲明一個函數(shù)在不進(jìn)行NULL檢查的情況下,會發(fā)生空指針引用。因此,如果NULL作為參數(shù)傳遞給函數(shù),就會發(fā)生一個運行時錯誤。

myElemCopy-NPD1

myElemCopy-NPD2分析常用的知識庫定制class=DMEM記錄聲明您自己的內(nèi)存管理函數(shù)(函數(shù)如何分配或釋放內(nèi)存)。這類記錄幫助Klocwork發(fā)現(xiàn)內(nèi)存泄漏和不匹配的內(nèi)存釋放調(diào)用,格式如下:<group>,alloc,[<socket-expression>]alloc聲明一個分配內(nèi)存的函數(shù)。如果在”alloc”之后添加socket表達(dá)式,說明被分配的內(nèi)存通過一個函數(shù)參數(shù)返回。注意:有三個內(nèi)建組:stdc--malloc/realloc/calloc/freestdc++--new/deletestdc++[]--new[]/delete[],MRF,<argnum>如果inSpect和inForce不知道關(guān)于一個函數(shù)的任何情況,并且將內(nèi)存?zhèn)鬟f給它,它們將假設(shè)內(nèi)存指針可能被保存到某個存儲位置。這種情況下,它停止跟蹤內(nèi)存泄漏。MRF用于指示內(nèi)存既沒有被釋放也沒有被保存在任何地方。例如,一個應(yīng)用可能動態(tài)傳遞分配的內(nèi)存到strcpy,strcpy不會釋放或者在任何地方保存這個指針。分析常用的知識庫定制class=DMEM例:f_alloc-DMEMmy_wrappers,allocf_act-DMEM,MRF,1分析常用的知識庫定制class=FREE聲明釋放內(nèi)存的函數(shù)語法:<function_name><function_key>FREE<alloc_group><expression>[post:<postcondition>]<alloc_group>是一個標(biāo)識符,指定一組內(nèi)存管理函數(shù)。如果使用來自不同組的函數(shù)來進(jìn)行內(nèi)存的分配和釋放,就會報告一個FMM缺陷。<expression>表示哪個參數(shù)會被釋放。<postcondition>是可選參數(shù),表示如果內(nèi)存被釋放,則postcondition為true。例:realloc-FREEstdc$1post:$$NE(0)realloc是一個stdc函數(shù),釋放通過第一個參數(shù)傳遞的內(nèi)存。當(dāng)內(nèi)存釋放后,會返回一個非空指針。分析常用的知識庫定制class=BPS緩沖區(qū)屬性設(shè)置(BPS)信息描述一個函數(shù)如何修改緩沖區(qū)屬性語法:<functionname><functionsignature>‘BPS’<propertytransferspecification>例:strdup-BPScharlength($$)=charlength($1)strdup-BPSbytesize($$)=charlength($1)+1strcpy-BPScharlength($1)=charlength($2)編譯器配置Klocwork能夠識別大多數(shù)主流編譯器:從文件<klocwork_install>\config\kwfilter.conf文件中可以查看;如果所使用的編譯器不在kwfilter.conf中,需要修改kwfilter.conf文件進(jìn)行設(shè)置,否則kwinject生成的.out文件內(nèi)容為空,只有一行版本行;例:Tornado項目的設(shè)置:如果Tornado項目使用的編譯器是CCPPC(GNU類型),鏈接器是LDPPC,則修改kwfilter.conf如下:#DefaultGNUC/C++compilerfilter gnu gcc,g++,cc,c++,CCPPC#GNUarfilter ar

ar,LDPPC如果編譯器類型在kwfilter.conf中不存在,需要添加新的編譯器類型編譯器配置正確的編譯器配置是執(zhí)行準(zhǔn)確的KW構(gòu)建所必要的構(gòu)建配置文件中的?config;...?行–是構(gòu)建快照的一部分,或者是kwcc_config.xml

文件的一部分–由Klocwork產(chǎn)生設(shè)定編譯器–設(shè)置定義、頭文件目錄和語言擴展名許多編譯器可被構(gòu)建輔助工具自動配置.參見Klocwork的技術(shù)指導(dǎo)手冊.例如,包括:GNU:gcc(2.x,3.x)Microsoft:cl(VC6,VC7,VC7.1)ARM:armcc(4.x)Windriver

Diab:dcc(5.x)…配置作為構(gòu)建配置的一部分保存(kwinject.out)kwcc

選項有一些kwcc(Klocworkcompiler)選項您可能希望傳遞給kwbuildproject:-I<dir> -設(shè)置頭文件路徑

-D<macro[=value]> -定義宏

-U<macro> -取消定義宏

-imacros<file> -接受在文件<file>中定義的宏

-include<file> -其他文件之前包含文件

<file>的內(nèi)容

-J<dir> -設(shè)置系統(tǒng)頭文件路徑

-isystem<dir> -設(shè)置系統(tǒng)頭文件路徑

-nostdinc -不用搜索系統(tǒng)頭文件

-undef -不用使用預(yù)定義宏需要優(yōu)化或添加丟失的配置信息時,這些選項很重要分析項目的配置文件在ConfigurationFiles子項下缺省從上層繼承可以刪除、導(dǎo)入新的配置文件和知識庫文件分析項目的配置文件配置文件的繼承關(guān)系分析度量度量文件.mconf文件,到projects_root\projects\<project_name>的rules目錄下修改.mconf文件#Formatofeachrule:#Name;Entity-Type;Metric-Expression;Error-Threshold;Warning-Threshold

WARNING.SEVERITY=7ERROR.SEVERITY=3WARNING.CATEGORY="UserDefinedWarningCategory2"ERROR.CATEGORY="UserDefinedErrorCategory2“Cyclomaticcomplexity(VG);FUNCTION,CLASS-METHOD;CYCLOMATIC;30;20!aliasHALSTEAD=(NOOPRUSED+NOOPUSED)*log(NODISOPRUSED+NODISOPUSED)/log(2)Halstead'sProgramvolume(V);FUNCTION,CLASS-METHOD;HALSTEAD;1000;700Maintainability;FUNCTION,CLASS-METHOD;100-((NOINDPATHS+CYCLOMATIC)*0.23+log(HALSTEAD)*5.3);<0;<20分析架構(gòu)約束架構(gòu)規(guī)則文件.uconf文件,到projects_root\projects\<project_name>的rules目錄下修改.uconf文件

#RuleName;FromObject;ToObject;RelationshipType;ErrorField;WarningField;ModifierWARNING.SEVERITY=7ERROR.SEVERITY=3WARNING.CATEGORY="UserDefinedWarningGroup1"ERROR.CATEGORY="UserDefinedErrorGroup1"donotuselibrarytclmorethanitisrightnow;*;tcl.h;*;5命令行方式還可以使用kwadmin和kwbuildproject命令在命令行下進(jìn)行分析能夠做KMC所作的所有事情kwadmin

命令行格式請參考Klocwork_AdministrationGuide.pdf

手冊MetricsandTrending項目經(jīng)理或開發(fā)人員在MetricsandTrending中查看不同產(chǎn)品的缺陷分析:不同模塊各種級別的bug;不同版本的各種類型的bug;對每次構(gòu)建后的程序進(jìn)行度量和比對ArchitecturalAnalysis可在ArchitecturalAnalysis通過函數(shù)的依賴關(guān)系和流程圖進(jìn)行分析查找組件,按組件架構(gòu)優(yōu)化設(shè)計查找異常結(jié)構(gòu),消除異常結(jié)構(gòu)(閉環(huán)依賴關(guān)系--Cluster)在Eclipse開發(fā)環(huán)境中發(fā)現(xiàn)分析解決問題打開Inforceforc/c++或Java程序內(nèi)容簡介KlocworkK7.7環(huán)境KlocworkK7.7安裝KlocworkK7.7安裝后設(shè)置用Klocwork分析C/C++項目分析VisualStudio項目分析Tornado項目常見問題處理/編譯器設(shè)置/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論