1. 程式人生 > >Parasoft C/C++test 常見問題整理大全(三)

Parasoft C/C++test 常見問題整理大全(三)

Parasoft C/C++test幫助團隊寫出更好的程式碼,實施更有效的測試,以及持續地監視以實現質量目標。 C / C ++test可以進行靜態分析,全面程式碼審查,執行時錯誤檢測,並在單元測試和元件測試中整合覆蓋率分析。這些能夠在開發週期的開始階段,在開發桌面上自動完成。
在這裡插入圖片描述

一、C/C++測試無法啟動。

在啟動CppTest時,經常會掛起並且無法啟動。在載入一些svn或mylyn相關外掛時載入過程停止。只有解除安裝並重新安裝該軟體才能再次使用。

在這種情況下首先要搞清楚:

  • 主機是Windows還是Linux

  • 正在執行的C/C++ Test的確切版本(Help menu →About… →Press C/C++ Test gear icon
    就可以檢視到)

  • 是獨立的C/C++測試還是Eclipse外掛

上文提到的測試無法啟動問題很可能與Eclipse IDE中的“Deadlock on startup”bug有關,它表現在某些Linux系統中多次開啟一個工作區啟動後掛起。一般情況下可以按照以下方案處理:

  1. 使用“-clean”選項啟動C / C
    ++測試GUI(cpptest可執行檔案)。這應該會從“hang”狀態恢復工作區。該過程可能需要應用幾次。

  2. 將隨C / C ++測試一起提供的Eclipse Platform升級到版本4.6.2+

建議可以將方案1作為優先選擇方案,確認問題後可以將方案2作為永久解決方案。

二、解決OutOfMemoryError:Java堆空間或GC開銷。

執行基於Parasoft Test的產品時,您可能會看到錯誤:

  • java.lang.OutOfMemoryError:Java堆空間問題

  • 在以下期間發生內部錯誤:”Building workspace“。超出GC開銷限制問題

這是Java記憶體不足時會發生此錯誤。

有兩種解決辦法:

  1. 推薦減少軟體使用的記憶體量。因為它通常涉及應用最佳實踐。

  2. 增加軟體可用的記憶體量,如下所述。

為JVM分配更多記憶體:

在某些情況下,在處理大型測試套件或複雜方案時,可能需要增加分配給執行SOAtest / LoadTest / Virtualize的JVM的預設記憶體量。

32位版本預設使用896MB。64位版本預設使用1792MB - 如果使用SOAtest小於9.4 則使用896MB。 要增加最大堆大小,請將-J-Xmx引數傳遞給可執行檔案。例如,“cpptest -J-Xmx1400m”將啟動C / C ++測試,最大堆大小設定為1400MB。

提示:

  • 可以以類似的方式配置其他JVM引數。傳遞給可執行檔案時,每個JVM引數都必須以“-J”為字首。

  • 多個JVM引數可以與字首為“-J”的每個引數一起傳遞。例如,“soatest -J-Xmx1400m
    -J-Xms1024m”將最大堆大小設定為1400MB,將起始堆大小設定為1024MB。

三、ERROR:無法啟動程序/訪問被拒絕。

執行C ++ Desktop時,需要確保C ++ Test可以執行編譯器。如果您沒有正確設定,您將看到如下訊息:

程序執行期間出錯:無法啟動程序:“C:\ gcc”“ - IC:\ Apps \ Parasoft \ C ++ test \ 10.3 \ engine \ runtime \ include”-I。-DPARASOFT_CPPTEST -v -E -dM -ffreestanding -xc“C:\ Users \ ANDREY~1.MAD \ AppData \ Local \ Temp \ ParaSoft.25452.41.c”-o“C:\ Users \ ANDREY~1.MAD \ AppData \ Local \ Temp \ ParaSoft.25452.18467.c“ 訪問被拒絕。

這裡的問題是C:\ gcc不存在。但是我會在哪裡改變它?答案在Parasoft專案設定中:

  • 右鍵單擊專案並轉到Parasoft-> C ++ Test-> Build Settings
    在這裡插入圖片描述
  • 然後,您將看到需要瀏覽到編譯器,或者如果編譯器可執行檔案在PATH上,則只需指定可執行檔案:
    在這裡插入圖片描述
    使用Cygwin環境只是一個額外的注意事項,在Cygwin中,'gcc’和’g ++'可以是指向實際編譯器.exe檔案的UNIX風格的符號連結。但是,C ++測試必須使用常規的Windows程序API來執行編譯器。Windows不會理解Cygwin使用的UNIX風格的sym-links。因此,在使用Cygwin時,您應該在Build Settings中使用編譯器的實際.exe名稱。

想要了解更多Parasoft C/C++ Test相關資訊請點選這裡