Как проверить локальную переменную\параметры для джиттинговых методов с помощью HotSpot Serviceability Agent?

Я нашел хорошую статью о том, как проверить значение переменной с помощью otSpot Serviceability Agent, однако у меня все еще есть вопрос.

Изменить значение переменной в JVM с помощью GDB

«Информация о локальной переменной надежна для интерпретируемых методов, но не всегда для скомпилированных методов. Однако скомпилированные методы будут иметь дополнительную строку с адресом кода, поэтому вы можете разобрать и проверить ее в gdb»

Так почему же этот способ проверки информации о локальной переменной не всегда надежен для скомпилированных методов? И как я узнаю, если произойдет ненадежная ситуация? Если бы эта ситуация произошла, как бы я разобрал и проверил ее в gdb на предмет методов Java jitted?

Насколько я знаю, GDB может отображать только собственные методы C/C++. Было бы здорово, если бы был пример для демонстрации того, как проверять информацию о локальной переменной путем дизассемблирования и проверки ее в gdb на наличие методов Java jitted, когда возникает ненадежная ситуация.


person Jason    schedule 28.01.2017    source источник
comment
Связанный вопрос содержит код, вы пробовали / смотрели на него? Если да, то как далеко вы продвинулись/где вы застряли?   -  person the8472    schedule 29.01.2017
comment
Конечно, однако, как упоминалось в связанном вопросе, он не всегда надежен для скомпилированных методов, я хочу знать, почему он не всегда надежен для скомпилированных методов?   -  person Jason    schedule 29.01.2017
comment
Я думаю, это потому, что JVM сохраняет информацию только для деоптимизации в определенных точках инструкции. промежуточные инструкции могут содержать неизвестные промежуточные значения   -  person the8472    schedule 29.01.2017
comment
Спасибо за ваш ответ, так что, если произойдет эта ненадежная ситуация, как разобрать и проверить переменную в методе Java с помощью gdb?   -  person Jason    schedule 29.01.2017
comment
Не. Если вам нужно отладить определенный метод, попробуйте исключить его из компиляции.   -  person Holger    schedule 30.01.2017