2

私たちのコードには、どの例外が

  • ad-hoc--関数の境界-- フロー制御の他の方法が実用的でない場合に、単一の関数内でまれなエラー状況を処理するため。
  • internal--ライブラリ境界-- ライブラリ内の複数のコンポーネント間でエラー状況を通信するため、
  • external--main境界-- ライブラリ境界を越えて外部コードにエラー状況を伝えるため。

記述されたライブラリ/外部コードが準拠していることを確認するために、次の方法で例外伝播の半自動分析を行いました。

  1. 、で興味深いthrowステートメントをフィルタリングするgrep
  2. 上記で特定されたスローされた例外をすぐに処理しない各関数の潜在的な呼び出しツリーを (Eclipse/CDT を使用して) 作成する
  3. 呼び出しツリーを手動で分析し、特定の例外が最終的に関連する境界までに処理されるかどうかを確認する

私の質問は、これを行う静的アナライザーはありますか?

4

2 に答える 2

1

どう見てもカスタムだと思います。商用ツールがオプションかどうかはわかりませんが、Klocworkが適していると思います。

しかし、これには KAST と呼ばれるものを使用する必要があります。XPath 型の形式でカスタム ルールを作成するためのツール。非常に簡単に作成でき、強力です。

しかし、そうは言っても、これだけのために Klocwork を使用するのはやり過ぎです。一見の価値あり。

于 2013-05-29T13:19:51.990 に答える
0

これは 、C++ の関連する例外分析ツールのようです

しかし、例外のキャッチポイントに興味があります。私の経験によると、静的アナライザーは、キャッチされていない例外についてのみ通知します。

于 2013-05-23T21:04:37.553 に答える