1

システムのコードに対してフリーテキスト検索を実行できるツールはありますが、特定の呼び出し中に実際に実行されたコードに対してのみ実行できますか?

少し背景を説明すると、新しいシステムの使い方を学ぶとき、特定の値がどこから来たのかを知りたいと思うことがよくありますが、コードベース全体を検索すると、個別に合理的に評価できるよりもはるかに多くの一致が見つかります。

価値のあることとして、私はこれをPerlとJavaでいつか欲しかったのですが、この機能をサポートするシステムを備えている言語があるかどうか知りたいです。

4

1 に答える 1

1

通常、コードカバレッジツールの腕をひねって、特定の実行中に実行されたパスを示すレポートを取得できます。このレポートには、コード自体が表示され、最初の数列は、特定のパスが実行されたかどうかに関するカバレッジツールの特定の表記に従ってマークアップされている必要があります。

これをそのまま使用できる場合もあれば、前処理して実行されなかったコードを削除するか、実行されたかどうかを示す新しい表記を各行に追加する必要がある場合もあります(ほとんどのツールはパス情報のみを表示します。コントロールポイント):

したがって、カバレッジツールから、次のようなレポートを取得できます。

T- if(sometest)
   {
x     somecode;
   }
   else
   {
-     someother_code;
   }

表記T-は、ifステートメントがtrueと評価されただけであり、コードの最初の部分のみが実行されたことを示します。後の表記「x」は、この行が実行されたことを示します。

最初の列にT、F、またはxが含まれている場合にのみ一致する正規表現を形成できるため、実行されたすべての制御ステートメントと実行された行をキャプチャできます。

各コントロールポイントでのみカバレッジ情報を取得する場合があります。その場合、Cファイルを解析し、実行行を自分でマークする必要があります。それほど簡単ではありませんが、不可能でもありません。

それでも、これは興味深い質問のように聞こえますが、解決策はおそらく価値よりも多くの作業です...

-アダム

于 2008-09-07T04:15:38.720 に答える