|
|
|
Установка Breakpoint внутри BreakpointEvent (JDI)
|
|||
|---|---|---|---|
|
#18+
Подскажите, возможно ли установить breakpoint внутри тела метода обработки другого breakpoint. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Проблема в конце , во время выполнения метода addBreakPoint(method, "").enable(); . Я так понимаю, что по умолчанию брейкпоинт останавилвает все потоки отлаживаемой VM. Это значит, что после addBreakPoint(method, "").enable(); следует вызвать virtualMachine.resume(); . Но если я это сделаю, тогда вылетит exception на System.out.println(clickListenerObject.invokeMethod(event.thread(), method, arguments, 0)); , так как поток уже не находится в состоянии atBreakpoint. Как решить эту проблему. Мне крайне важно внутри обработки одного брейкпоинта устанавилвать другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:39:28 |
|
||
|
Установка Breakpoint внутри BreakpointEvent (JDI)
|
|||
|---|---|---|---|
|
#18+
Что-то нифига не понятно. Можно ли установить новый Breakpoint во время того как JVM остановлена? У вас JDI в той же JVM работает? А когда отсновки по breakpoint происходят, то код JDI тоже останавливается? Или я чего-то недопонимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:49:16 |
|
||
|
Установка Breakpoint внутри BreakpointEvent (JDI)
|
|||
|---|---|---|---|
|
#18+
Изначально я ставлю брейкпоинт. После того, как произошла остановка, я вытягиваю метод под названием click и хочу его вызвать. Но мне нужно не просто его вызвать, а тоже установить на него брейкпоинт. Тут я вытягиваю метод Код: java 1. . А тут я хочу поставить на него брейкпоинт Код: java 1. . Затем мне я вызываю этот метод Код: java 1. . Проблема в том, что брейкпоинт по умолчанию имеет suspendPolicy = SUSPEND_ALL_THREADS. Значит, мне необходимо сделать установку брейкпоинта так Код: java 1. 2. Но если я так сделаю, тогда не выполнится Код: java 1. Так как потоки уже запущены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 15:57:30 |
|
||
|
Установка Breakpoint внутри BreakpointEvent (JDI)
|
|||
|---|---|---|---|
|
#18+
Тогда вам нужно решить вопрос потоков. Есть ваше приложение. Оно работает в каких-то своих потоках. Есть JDI код, который выполняется в своих потоках. Соответственно в JDI потоке нужно положить событие в какую-нибудь очередь, чтобы работающий поток его оттуда выгреб. В каких потоках работает само приложение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 16:01:00 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2130819]: |
0ms |
get settings: |
18ms |
get forum list: |
20ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 286ms |
| total: | 463ms |

| 0 / 0 |
