Я решил немного разобраться.Я посмотрел на Eclipse Debug Package.Этот пакет представляет собой обширную коллекцию подключаемых модулей, работающих вместе для предоставления служб для отладки нескольких запусков / сред.
В этом пакете состояние запуска инкапсулируется в объектах, созданных из Launch и DebugTarget.Однако доступ к этим данным не ограничен каким-либо объектом или потоком.Дизайн в основном основан на диспетчерах событий и слушателях.Он обеспечивает гибкость для добавления новых функций, но меньше контролирует доступ к данным и переходы между состояниями.В частности, разработчики должны быть осторожны с проблемами параллелизма.