2011-09-09 2 views
2

방금 ​​SS, DBX 및 내 앱으로로드 한 새로운 Pharo 1.3 이미지가 있습니다. OSX10.6에서 최신 Cog VM을 사용하고 있습니다. VM이 무작위로 추락했으며 이미지를 다시 시작하려고하면 즉시 종료됩니다. 스택 추적은 내 응용 프로그램이 열려있는 소켓을 읽는 중 오류가 발생하는 것을 보여줍니다. 물론 더 이상 존재하지 않습니다.시작시 이미지가 깨지는 것을 방지하기 위해 시작 코드를 무시하십시오.

내가 알고 싶은 것은 스크립트 또는 명령 줄 옵션을 전달하고 Pharo가 내 앱과 시작을 우회하도록하는 방법이 있습니까? 내 코드에서 어디에서 변경해야하는지 정확히 알고 있다고 생각합니다. 명령 행에서 패치를 파 일할 수 있다고해도 패치가 제대로 작동 할 것입니다.

기본적으로 이미지를 부팅하고 코드를 조작하고 저장하고 다시 시작하는 안전 모드가 필요합니다.

답변

2

.st 파일을 이미지에 전달할 수 있습니다. 그러나 문제가되는 코드는 파일이 처리되기 전에 실행될 수 있습니다 (모든 시작 방법은 인수를 처리하기 전에 실행됩니다). 이 경우 유일한 옵션은 디버그 VM을 빌드하는 것입니다. VM을 수동으로 편집하거나 gdb를 사용하여 소켓 코드를 실행하지 않으려면 실행중인 이미지에 코드를 수정하고 저장하십시오. 그런 다음 일반 VM에서 실행할 수 있습니다. VM을 제작하려면 Mariano Martinez Peck의 우수한 게시물/스크린 캐스트 like this one을 참조하십시오. 또한이 작업을 수행 한 경험에 대한 목록은 this thread on the Pharo을 참조하십시오.

n.b. 이 작업은 꽤 오래 걸릴 수 있으므로 새 이미지를 시작하기 만하면됩니다.

+0

감사합니다. Mariano의 VM 게시물을 통해 작업하고 있습니다. 이 일을 시작하려면 큰 스레드가 필요합니다. 방금 이미지를 다시 작성했지만 사용자 지정 VM과 같은 일반적인 솔루션을 사용하면 매우 유용합니다. 이미지는 종종 실패하지 않지만, 그럴 때, 그 이미지를 복구하려고 시도하거나, 일어난 일을 찾아내는 것이 정말 고통 스럽습니다. – JPT

+0

예, 안전 모드에 대한 제안은 좋은 생각입니다. 계속 밀고 나가십시오. 우리 Pharo 커뮤니티는 훌륭한 자원 봉사자, 멘토 및 파트너입니다. 또한 이미지 크래시가 발생했을 때 데이터를 훨씬 강력하게 만드는 위대하고 단순한 지속성 전략이 있습니다 (Ramon Leon의 블로그 게시물, Squeaksource에 패키지 된 코드 참조). 또한 Metacello는 한두 줄의 코드로 프로젝트 종속성을로드함으로써 도움을 줄 수 있습니다. –

관련 문제