2010-12-10 71 views
0

我正試圖在Solaris上編譯一個相當大的應用程序。在AIX上編譯會導致命令行緩衝區太小的問題(ARG_MAX)。在Solaris上構建大型應用程序掛起時沒有任何信息

在Solaris上,它成功地編譯了大部分應用程序,但是它只是掛起而沒有任何錯誤,至少在一個小時內不會執行任何操作。

我在SunOS 5.10 Sparc 32位上運行它。

有關如何找出正在發生的事情或可能導致此類行爲的任何想法?

+0

在同一地點的AIX和SunOS故障?什麼應用? – nmichaels 2010-12-10 15:08:15

+0

另外,你在每個平臺上使用什麼編譯器/版本? – andand 2010-12-10 15:26:40

+0

我曾見過優化器在某些文件上「掛起」的情況。 您可以嘗試禁用有問題的源文件的優化。 – macgarden 2010-12-10 15:32:43

回答

0

僅限於未來遇到此問題的人。 問題是優化標誌導致它需要很長時間才能編譯。我正在說1個小時以上一個cpp文件。

這是個大項目。 另外,SUN系統管理員在給出足夠的CPU份額時出現了問題。 越來越多地解決了這個問題,並且在合理的時間範圍內做得更快。

我希望這有助於

0

我不知道編譯是掛起還是應用程序本身。

如果應用程序掛起,只需按照通常的調試步驟:在調試器中運行它並觀察它何時死亡或添加打印語句。

如果編譯器死了,它會一直死在同一個文件上嗎?如果你自己編譯該文件,它仍然會掛起?如果是這樣,當您嘗試生成掛起的文件時,請嘗試使用編譯器。你可能會發現它阻止了I/O等待一些不存在的文件或類似的東西。

+0

它不會死......只是掛起...而不是它的應用程序它掛着的編譯...和它在同一個文件上做...什麼是桁架從來沒有聽說過它 – grobartn 2010-12-10 15:48:25

0

你可能需要做的是:

  1. 註釋掉或刪除代碼的99%和編譯
  2. 回到中的代碼添加的5%左右,並編譯

    如果添加的最後一件事引起了小時掛則將其分解

  3. 回到步驟2

相關問題