OS X Yosemiteのスタック制限を増やす


12

OS X 10.10のターミナルアプリケーションで使用可能なスタックサイズを(必ずしも恒久的ではないが)増やす方法を探しています。

インターネットやここ(特にこれ)で、スタック制限を含む環境変数の変更に関連する質問がたくさんあることは知っていますが、私が見つけた提案された解決策はどれも私には役に立たないようです。

私が最も得たのlaunchctlsudo launchctl limit stack 67104768 67104768、67104768がデフォルトのハード制限である場所を使用することです。launchctlより高い制限を持つ他のコマンドは効果がないようです。

次にsysctl、がありますが、そのマニュアルページkern.stack_sizeは不変として報告します。

どこかですでに提案されている解決策を見逃していないことを望みます。どんな助けも大歓迎です!

編集:OCamlネイティブコンパイラであるocamloptのバグと思われるものを回避するために、スタック制限を増やして、特定の(適切な)プログラムの処理をスタックオーバーフローさせたいと思います。現在、バグレポートが見つからないようです。


1
Yosemiteのスタック制限を増やす方法を明示的に尋ねていますか?

1
はい。申し訳ありませんが、それがテキストから明確でない場合。
クリストファー

1
superuser.com/questions/836883/で質問を見つけました。これはあなたを助けるかもしれません...最初の答えでは、maxfilesの制限を示しています。おそらくスタック制限に変更しlimit.stack.plistてlaunchDaemonsに保存しますか?
TheBro21

1
ありがとう!私はそれを試しましたが、運はありません。
クリストファー

1
OK。そして、実際に制限ファイルを見つけましたか?ない場合。私はそれを探して問題を解決するのに時間を費やします。そして、そのplistを構成するには、以前に指示しました。
TheBro21

回答:


5

スタックサイズを増やす1つの方法は、次を使用することulimitです。

shell> ulimit -s new_size_in_kb

OSXのスタックの大きさには厳しい制限があり、その制限は65532 kbと思われることに注意してください。

shell> ulimit -s 65533
ulimit: value exceeds hard limit
shell> ulimit -s 65532
shell> ulimit -a | grep stack
-s: stack size (kbytes)             65532

またulimit -s、一時的であり、ターミナルセッションが終了するとリセットされます。

ターミナルセッションごとにスタックが増加するようにしたい場合は、ulimit -sコマンドを.zshrcまたは同等のものに入れることができます。


それをありがとう!残念ながら、この特定のケースでは、スタックサイズをOSXのハード制限を超えて増やす必要があり、この制限を増やす解決策を見つけることを望んでいました。
クリストファー

うん:またulimit -s unlimited65532 KBに制限されているようだ。ulimit -a | grep stack与えます-s: stack size (kbytes) 65532
fpierfed
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.