2

-j フラグを付けて大きな GNU Make ファイルを実行しています。ある時点で、Make プロセスがすべての RAM をオーバーフローし、「セグメンテーション違反」で落ちます。-j フラグがないと、プロセスは正常に終了します。メモリを消費し始めたときにGNU Makeが何をしているのかを知る方法は? デバッグ フラグ (-d) は、この問題には役立ちません。

4

3 に答える 3

0

メモリを消費しているのは GNU make ではありません。個別にメモリを消費している並行してフォークされるさまざまなターゲットでコマンドを実行しています。これがおそらく、複数の並列プロセスで実行した場合にのみ問題が発生する理由です。あなたは試しまし-j2たが、それも失敗しますよね?

remakeを使用すると、プロセスが失敗したときに、失敗した make コマンドと、それを呼び出したターゲット スタックが表示されます。

于 2015-05-18T10:23:01.717 に答える