4

これが私の問題です。何年にもわたって修正してきた古いコードを整理し、冗長な機能を削除しています。

遅い方法でコメントアウトして、コンパイラがエラーをスローするかどうかを確認できます。しかし、コードをスキャンして、特定の関数を呼び出す関数のリストを提供できるツールがあるかどうか疑問に思っています。

私はge-expertsとicarusを見ていましたが、彼らはユニットとクラスのレベルでのみこれを行い、機能にまでは至りません。

どんな提案も歓迎します、どうもありがとう、ブライアン

4

5 に答える 5

6

Delphi の最近のバージョンでは、コンテキスト メニューまたは Ctrl-Shift-Enter から「リファレンスの検索」を利用できます。これには、カーソル下の現在の関数への参照のみが検索され、同じ名前の関数や他の識別子は検索されないという単純な「ファイル内検索」よりも利点があります。

于 2012-07-14T15:59:46.580 に答える
6

プロジェクトをコンパイルします。次に、IDE で、(デッド コードではなく) アクセスされる行の左マージンに青い点が表示されます。

ここに画像の説明を入力

于 2012-07-14T16:31:55.740 に答える
4

完璧な方法はありません。以下の制限事項は次のとおりです。

  • .MAP ファイルには、リンカが排除できない機能が含まれます (たとえば、コードが影響するクラスのメソッドのオーバーライド)。
  • メソッド名のみが表示されますが、メソッドがオーバーロードされている場合、これらのメソッドの複数のバージョンを使用できます

.MAP ファイルを使用することの大きな利点は、コード エディターで青い点よりも簡単にスキャンできることです。

したがって、関数のリストを提供するために質問に答えます。しかし、それは実際にはあなたが求めているものではないかもしれません (:

.MAP ファイルを使用する方法:

  • プロジェクトを変更して詳細な .MAP ファイルを含める
  • プロジェクトを再構築する
  • .EXE ファイルのディレクトリに .MAP ファイルが含まれるようになりました。
  • .EXE に含まれる関数名の .MAP ファイルをスキャンします。

その .MAP ファイルは、コンパイラとリンカーによって削除された関数を除外します。
これらは、あなたが持っている「死んだ」コードの良い指標です。

同様に、JDBG 情報を使用できます。これにはより多くのコンテキストが含まれますが、自分でツールを作成する必要もあります。

于 2012-07-14T17:09:20.827 に答える
0

Pascal にとって、これは些細なことです。最初にすべての関数のリストを作成し、次に各関数について、「関数」という単語の後に「(」が続くテキスト内でそれを検索します。awk はこれを行うための優れたツールです。

于 2012-07-14T15:55:07.467 に答える
0

Delphi のバージョンが 2007 である場合 (またはそれ以前の場合)、DGrokの使用を検討することを強くお勧めします。

著者が指摘したように、ツールがリファクタリング参照の検索を実行できるように、シンボル テーブルのサポートを実装する必要があります。

Delphi に行き詰まっていても心配しないでください 。Turbo87 による PasParse (もともと C# で書かれた DGrok パーサーの Delphi ポートです!) に進んでください。

Turbo87が元のJoe Whiteの Dgrok (2008 年の最新リリース) をフォークしたことに注意してください (VS2010 に更新し、LexScanner のドキュメントを追加します)。

于 2012-07-15T04:39:36.077 に答える