JDI Расположение всех точек выхода данного метода
Я работаю с JDI api (Java Debug Interface) и пытаюсь создавать запросы точек останова для первой строки кода определенного метода, но также и для всех "точек выхода" метода (т. Е. Для всех "возвратов"...;").
Чтобы создать запрос точки останова, мне нужен Location
объект (то есть вид указателя на исполняемый код)
Получение Location
Для первой строки метод относительно прост:
theTargetMethod.allLineLocations().get(0)
Получение Location
для всех "точка выхода" более проблематична. Простого получения последней строки метода, вероятно, недостаточно, потому что метод может содержать несколько return
заявления в середине тела, и я должен поймать их тоже.
Я подумал об использовании MethodExitRequest
но это создаст тонны событий, которые мне не нужны, потому что они связаны с другими методами класса. (так что он может выполнять работу, но он генерирует огромные накладные расходы во время выполнения).
Итак, мой вопрос: как мы можем получить Location
для всей точки выхода метода?
РЕДАКТИРОВАТЬ
Дополнительная информация
Для моего конкретного случая использования мне нужно создать запросы точек останова для нескольких методов, и кажется, что все интересующие меня методы все возвращают void, поэтому можно выполнить поиск инструкции "return void" (b1) в байт-код метода и создать объекты Locations на основе всех индексов b1 в байт-коде.