• ベストアンサー

CALLされていないメソッドを見つける方法

CALLされていない(使われていない)メソッドを削除したいのですが、その検出方法がわかりません。数が多いので、秀丸でgrepというような方法ではなく、簡単にミスが少ないように、CALLされていないメソッドを見つける方法を教えていただきたいのです。 環境はMicrosoft Visual C++ 2005です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • z64423
  • ベストアンサー率53% (26/49)
回答No.3

プロジェクトの設定(プロパティ)で [構成プロパティ]  リンカ   [全般]  進行状況の表示 = 詳細をすべて表示   [最適化] 参照 = 参照されないデータを除去する に設定すれば、ビルドの最後のリンク時に詳細メッセージが表示されます。 その中で   (関数名等)は(オブジェクトファイル名).obj から廃棄されました。 と表示されます。 ただし、メッセージが大量なので、ちゃんとしたツールを使うほうがいいかもしれません。 P.S. これは C ソースで確認したものなので、C++ だとどうなのか自信ナシ。

miyu-_-
質問者

お礼

呼ばれないメソッドに対しておっしゃるようなメッセージが表示されました。 この方法でやってみようと思います。大量のメッセージは秀丸でgrepしたら見やすくなりました。 ご回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

静的な解析ツールでは限界がありそうです。 呼ばれていない仮想関数を静的に割り出すことはできませんから。

miyu-_-
質問者

お礼

ご回答ありがとうございます。 結局、フリーでどこでCALLされているか、わかるソフトはみつかりませんでした。

すると、全ての回答が全文表示されます。
回答No.1

お金をかけても良いのであれば、「仕様書工房」に、そういう機能があります。メソッド(関数)の順方向(呼び出している側)逆方向(呼ばれている側)の呼び出しリストや、最近のバージョンでは、未参照定義(呼ばれていないもの)の一覧機能だとか。 一般には、クロスリファレンスツールで探してみると、良いものが見つかるかもしれません。

参考URL:
http://jp.fujitsu.com/group/fst/services/frontier/kobo/product/
miyu-_-
質問者

お礼

すみません。お金はかけられないのです。 フリーのクロスリファレンスツールでC++でも使えそうなものがないか探してみます。 ご回答ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A