特性
1. 檢測眾多不同類型的難以捉摸的錯誤,如記憶體破壞、記憶體泄露、記憶體分配錯誤、變
量初始化錯誤、變數定義衝突、指針錯誤、庫錯誤、邏輯錯誤和算法錯誤等等。
2. 精確定位引起記憶體泄露的代碼位置,不僅是泄露的記憶體位置
3. 支持所有流行的編譯器,如 VC、CC、GCC 和 ACC等等
4. 能夠檢查第三方庫和函式以及非 C 語言所寫的模組接口
5. 允許您在快速有選擇的檢查和完全插樁檢查之間進行切換
6. 發現大量的 C++錯誤。
好處
1. 大量減少調試時間
2. 減少軟體缺陷提高產品信譽
3. 降低維護和支持成本
4. 經常使用能夠幫助您排除算法錯誤
5. 支持多平台和跨平台開發
6. 能夠與您的開發生命周期無縫集成
用途
Insure++™能夠發現 C/C++套用中很多難以捉摸的錯誤,大致可以分成三大類:
1. 記憶體引用錯誤:
● 記憶體破壞
● 指針錯誤
● 記憶體泄漏
● 動態記憶體問題
● 字元串問題
● 其他
2. 編程和第三方庫接口錯誤:
● 數據表示問題
● 變數說明問題
2/3 ● I/O 語句問題
● 不匹配的參數
● 系統調用中的無效參數
● 系統調用中的意外錯誤
● 其他
3. C++有關的錯誤:
● Delete 操作的使用不一致
● 記憶體分配衝突
● 其他
4. 動態記憶體錯誤檢測
● 多次釋放同一記憶體塊
● 試圖刪除或釋放靜態分配的記憶體
● 釋放棧記憶體(局部變數)
● 傳遞給 delete/free的指針沒有指向一記憶體塊的起點
● 用 NULL 或未初始化指針調用 delete/free
● 傳遞沒有意義或類型錯誤的參數給 malloc/calloc/realloc/free
● new[ ]和 delete[ ]調用不匹配
● malloc/new/free/delete 混合調用不匹配
● 過度的 new/delete 調用引起的問題
● 其他
工具
1. Insra:
圖形化顯示靜態和動態檢測時檢測到的錯誤,並指出發生錯誤的準確位置。
2. Inuse:
實時記憶體可視化工具,幫助您理解記憶體使用模式並最佳化其行為。
3. TCA:
測試覆蓋性分析,告訴您那些代碼已經被實際測試過。
4. Threads++(Linux, Unix):
圖形化實時顯示多執行緒中各執行緒的執行狀況並檢測執行緒中的錯誤。
專利和關鍵技術
Insure++™利用源碼插樁(SCI,ParaSoft 專利技術,#5581696)和運行時指針跟蹤
(RPT,ParaSoft 專利技術,# 5842019)技術。
1. 源碼插樁:
Insure++™對所有程式元素建立一個綜合資料庫,包括數據結構、記憶體使用、指針使用
和接口等。
3/3 2. 運行時指針跟蹤:
使用一個有關指針和記憶體塊的綜合資料庫檢查對記憶體的每一次讀寫操作。
支持平台
1. Microsoft Windows 2000/XP/2003/7/8,Insure++™ works as a plug-in for Visual C++
* Microsoft Visual C++ 6.0
* Microsoft Visual C++ .NET
* Microsoft Visual C++ .NET 2003
* Microsoft Visual C++ 2005
*Microsoft Visual C++ 2008
*Microsoft Visual C++ 2010
*Microsoft Visual C++ 2012
2. Linux for x86 processors 32 bits (all distributions)
* GNU gcc/g++ 2.95.x, 3.2.x, 3.3.x, 3.4.x, 4.0
* Intel ICC 8.0, 8.1, 9.0
3. Linux for AMD64 and Intel EM64T 64 bits (all distributions)
* GNU gcc/g++ 3.2.x, 3.3.x, 3.4.x, 4.0
* Intel ICC 8.1, 9.0
4. Solaris 7, 8, 9, 10 UltraSparc Processor
* Forte Developer 6 Update 2 (6.2) / Sun CC 5.3
* Sun ONE Studio 7/ Sun CC 5.4
* Sun ONE Studio 8/ Sun CC 5.5
* Sun Studio 9/ Sun CC 5.6
* Sun Studio 10/ Sun CC 5.7
* GNU gcc/g++ 2.95.x, 3.2.x, 3.3.x, 3.4.x
5. IBM AIX 5.1, 5.2, 5.3, PowerPC Processor 32 and 64 bits
* IBM VisualAge (xlC) v5, v6, v7, v8
* GNU gcc 2.95.x, 3.2.x, 3.3.x, 3.4.x (GNU g++ is NOT supported.)
6. HP-UX 11 for PA-RISC 32 and 64 bits
* HP aCC/aC++ version A.03.26 and above
* GNU gcc/g++ 2.95.x, 3.2.x, 3.3.x, 3.4.x