Как позволить затмению сломаться при переполнении стека? - PullRequest
3 голосов
/ 21 февраля 2011

Я получаю трассировку стека, которая указывает на переполнение стека, вызванное не завершающейся программой. Однако я не знаю, как позволить отладчику eclipse прерваться, когда это произойдет.

Я бы предпочел не публиковать трассировку стека, но она начинается с:

JVM Error!
    at ___
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
    at org.eclipse.jetty.server.Server.handle(Server.java:334)
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559)
    at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:992)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:550)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203)
    at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:462)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
    at java.lang.Thread.run(Unknown Source)
Caused by:
null
    at ___

Затем следует очень длинная повторяющаяся последовательность вызовов функций.

Спасибо за любую помощь

Ответы [ 3 ]

4 голосов
/ 21 февраля 2011

Вы можете позволить отладчику прерваться на Исключения. В вашем случае попробуйте взломать java.lang.StackOverflowError

Проверьте это: http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.user/reference/views/breakpoints/ref-breakpoints_view.htm

0 голосов
/ 21 февраля 2011

Вы можете отключить отладчик при редактировании -

В перспективе отладки.

Выберите команду «Добавить точку останова исключения», чтобы добавить точку останова исключения Java.

В появившемся диалоговом окне:

  • В поле Выберите исключение введите строку, содержащуюся в имени исключения, которое вы хотите добавить. При необходимости вы можете использовать подстановочные знаки («*» для любой строки и «?» Для любого символа).
  • В списке Типы соответствия выберите исключение, которое вы хотите добавить. Выберите Caught и Uncaught, чтобы указать, к какому типу исключений вы хотите приостановить программу.
0 голосов
/ 21 февраля 2011

Увеличьте свой размер памяти. Когда вы запускаете программу, передайте ее в VM Args.

Xms512m -Xmx512m -XX: PermSize = 256 м -XX: MaxPermSize = 256 м

...