OS X Yosemite에서 스택 제한 늘리기 관련 질문을 많이 (예를 들어,

OS X 10.10에서 터미널 응용 프로그램에 사용할 수있는 스택 크기를 반드시 영구적으로 늘릴 수있는 방법을 찾고 있습니다.

나는 특히 여기에 인터넷에서, 스택 제한을 포함하여 환경 변수를 변경하고 관련 질문을 많이 (예를 들어, 거기에 알 이 하나 )하지만 내가 찾은 제안 된 솔루션 중 누구도 나를 위해 일을 보인다는.

가장 나는의 나가 launchctl사용 sudo launchctl limit stack 67104768 6710476867104768 기본 하드 한계입니다. launchctl더 높은 한계를 가진 다른 명령은 효과가없는 것 같습니다.

그런 다음이 sysctl있지만 맨 페이지 kern.stack_size는 변경할 수 없다고 보고 합니다.

어딘가에 이미 제안 된 솔루션을 간과하지 않았기를 바랍니다. 어떤 도움이라도 대단히 감사하겠습니다!

편집 : OCaml 네이티브 컴파일러 인 ocamlopt의 버그로 보이는 특정 문제를 처리하는 스택 오버플로를 해결하기 위해 스택 제한을 늘리고 싶습니다. 지금 버그 보고서를 찾을 수 없습니다.



답변

스택 크기를 늘리는 한 가지 방법은 다음을 사용하는 것입니다 ulimit.

shell> ulimit -s new_size_in_kb

OSX에서 스택이 얼마나 클 수 있는지에 대한 하드 한계가 있고 그 한계는 65532kb로 나타납니다.

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 또는 이와 동등한 것으로 넣을 수 있습니다.


답변