多くの変数を含む非常に複雑なメイクファイルを含む大規模なレガシー コードベースがあります。時々、それらを変更する必要がありますが、変更が期待どおりに機能しない理由を理解するのは非常に困難です。私が見つけたいのは、基本的に「make」プロセスのステップスルー デバッグを行うツールです。この場合、ディレクトリを指定すると、さまざまな変数の値をさまざまな時点で確認できます。処理する。何かが欠けている可能性はありますが、作成するデバッグフラグはどれも私が望むものを示しているようには見えません。これを行う方法を知っている人はいますか?
mbyrne215
質問する
65807 次
6 に答える
75
make -n
and make -np
、および biggieを実行した結果を見たことがありmake -nd
ますか?
のかなり新しいバージョンを使用していますgmake
か?
O'Reilly の優れた本「Managing Projects with GNU Make」( Amazon Link )の O'Reilly のサイトで入手できるMakefile のデバッグに関する無料の章を見たことがありますか?
于 2008-09-10T17:22:44.107 に答える
22
make コマンドライン オプションのマニュアル ページから:
-n, --just-print, --dry-run, --recon
Print the commands that would be executed, but do not execute them.
-d Print debugging information in addition to normal processing.
The debugging information says
which files are being considered for remaking,
which file-times are being compared and with what results,
which files actually need to be remade,
which implicit rules are considered and which are applied---
everything interesting about how make decides what to do.
--debug[=FLAGS] Print debugging information in addition to normal processing.
If the FLAGS are omitted, then the behaviour is the same as if -d was specified.
FLAGS may be:
'a' for all debugging output same as using -d,
'b' for basic debugging,
'v' for more verbose basic debugging,
'i' for showing implicit rules,
'j' for details on invocation of commands, and
'm' for debugging while remaking makefiles.
于 2013-03-20T11:33:55.003 に答える
5
あなたが望むことを正確に行う特定のフラグを認識していませんが、
--印刷データベース役に立ちそうです。
于 2008-09-10T17:28:45.497 に答える
0
http://gmd.sf.netにGNU make デバッガ プロジェクトがあり、非常に便利です。gmd でサポートされている主な機能はブレークポイントです。これは、ステッピングよりも便利です。これを使用するには、 http://gmd.sf.net から gmd を、 http://gmsl.sf.net から gmsl をダウンロードし、makefileに「gmd を含める」ことを行います。
于 2014-08-14T15:22:44.327 に答える