JDI Расположение всех точек выхода данного метода

Я работаю с JDI api (Java Debug Interface) и пытаюсь создавать запросы точек останова для первой строки кода определенного метода, но также и для всех "точек выхода" метода (т. Е. Для всех "возвратов"...;").

Чтобы создать запрос точки останова, мне нужен Location объект (то есть вид указателя на исполняемый код)

Получение Location Для первой строки метод относительно прост:

theTargetMethod.allLineLocations().get(0)

Получение Location для всех "точка выхода" более проблематична. Простого получения последней строки метода, вероятно, недостаточно, потому что метод может содержать несколько return заявления в середине тела, и я должен поймать их тоже.

Я подумал об использовании MethodExitRequest но это создаст тонны событий, которые мне не нужны, потому что они связаны с другими методами класса. (так что он может выполнять работу, но он генерирует огромные накладные расходы во время выполнения).

Итак, мой вопрос: как мы можем получить Location для всей точки выхода метода?

РЕДАКТИРОВАТЬ

Дополнительная информация

Для моего конкретного случая использования мне нужно создать запросы точек останова для нескольких методов, и кажется, что все интересующие меня методы все возвращают void, поэтому можно выполнить поиск инструкции "return void" (b1) в байт-код метода и создать объекты Locations на основе всех индексов b1 в байт-коде.

0 ответов

Другие вопросы по тегам