何年もの間、私は 2 つの優れたツールBoundsCheckerとPurifyを使用してきましたが、これらのアプリケーションの開発者は私をがっかりさせました。私たちは両方の会社に企業アカウントを持っていますが、どちらも 64 ビット アプリケーションをサポートするバージョンを作成するつもりはないと言っています。
64 ビットのネイティブ C++/MFC アプリケーションをサポートするオープン ソースまたは商用の代替製品を推奨できる人はいますか?
何年もの間、私は 2 つの優れたツールBoundsCheckerとPurifyを使用してきましたが、これらのアプリケーションの開発者は私をがっかりさせました。私たちは両方の会社に企業アカウントを持っていますが、どちらも 64 ビット アプリケーションをサポートするバージョンを作成するつもりはないと言っています。
64 ビットのネイティブ C++/MFC アプリケーションをサポートするオープン ソースまたは商用の代替製品を推奨できる人はいますか?
Parasoft には、Insure++ というツールがあります (リンク: http://www.parasoft.com/jsp/products/quick_facts.jsp?product=Insure )。
Linux 上の 32 ビットおよび 64 ビット アプリで Insure++ を使用しましたが、問題なく動作しました。テンプレート/stl コードを解析しようとしたときに混乱し、失敗することがありました。
その URL は、32 ビットおよび 64 ビットの Windows で動作することを示しています。
insure++ は、コードを計測する場合にのみ機能します。一度やってみた。約 1000 行のコードをコンパイルするのに約 5 分かかりました。コンパイルする必要のあるプロジェクトが巨大だったので、Insure++ は機能しないとすぐに判断しました。
レポートは言うまでもなく、Insure++ からの出力はかなり古風です。また、実行時のパフォーマンスの低下もひどいものでした。
numega/compuware/other_new_company からの boundschecker に関する注意: 購入しないでください。32ビットアプリのみをプロファイルします。64 ビット アプリには対応していません。ただし、64ビットOSにインストールできます。何年も前にアプリで使用するのをやめました。私はCppUnitテストでそれを使用します...時々。
一般的に、私はそこにあるすべてのネイティブ メモリ リーク ツールに完全にうんざりしています。それらはすべて機能しないか、シャットダウン時にアプリケーションをロックするだけです。
参考: BoundsChecker 10.0 は、Windows XP から Windows 7 の 32 ビット バージョンと 64 ビット バージョンの両方で動作します。WOW64 アプリケーションをサポートし、Visual Studio 2010 もサポートしています。実際、Microsoft のリリースから 30 日以内に VS2010 のサポートをリリースしました。
私たちはバックログに追いついています。VS2005 と VS2008 のサポートを開始するのが非常に遅れました (BC 9.0、2008 年秋) が、これが発生した理由はさまざまでした。奇跡は、私たちがそれをまったく出したことでした。
BoundsChecker 10.5 がリリースされたときには、さらに優れた機能が追加されているはずです。乞うご期待。
開示:私はMicroFocusで働いています。
BoundsChecker 9.01 は、ついに VC2008 と x64 ビットをサポートするようになりました。
Intel(R) Parallel Inspector ( http://software.intel.com/en-us/intel-parallel-inspector/ ) は、Microsoft* Visual Studio のスレッド化およびメモリーチェックのプラグイン ツールです。Windows で 32 ビットおよび 64 ビットの C/C++ をサポートします。これは、30 日間無料で評価できる商用アプリケーションです。
開示: 私はインテルで働いています。
x64 および x86 用のアプリケーション検証ツールは、ヒープの破損を検出します http://www.microsoft.com/download/en/details.aspx?id=20028
私は境界チェックやその他の動的分析ツールを使用しました。アーキテクチャは異なりますが、チェックしているのはコードです-理論的には、任意のバックエンドで境界チェックを実行でき、結果は同じです-コードはどちらか外側に出ますその範囲か、そうでないか。
唯一の複雑な点は、4GB を超えるメモリ空間に対処すること、32 ビット アーキテクチャにクロスコンパイルできないコード (ソースがない 64 ビット オブジェクト ファイルなど) を処理すること、および一般的な 64 ビット移行です。問題 (-1 の代わりに 0xFFFFFFFF をチェックするなどのプラットフォーム固有のコード)
プログラムで境界チェックを行う際に、他にどのような問題が発生していますか? 32 ビット版をコンパイルできませんか?
確かに、それはあなたの理想的な解決策ではなく、実行するコードを常にチェックする必要がありますが、この場合、独自の境界チェックを行いたくない限り、選択の余地がないかもしれません (これは任意の方法で良い考えです)場合...)。
-アダム
BC 9.0 が WOW64 をサポートすることを理解しています
Microsoft Windows の 64 ビット バージョンに対する IBM PurifyPlus サポートから:
テクニカルノート (FAQ)
質問
IBM Rational PurifyPlus は 64 ビット バージョンの Microsoft Windows でサポートされていますか?
原因
Microsoft Windows の 64 ビット バージョンが普及しています。
答え
バージョン 7.0.1 iFix 003 以降、PurifyPlus は Windows での 64 ビット アプリケーションのテストをサポートしています。
iFix 003 の詳細については、次の技術情報IBM Rational PurifyPlus for Windows v7.0.1.0-003 を参照してください。
このバージョンの Purify をインストールすると、[スタート] メニューに[Purify (64 ビット アプリケーション用) ] エントリが表示されます。