Копаемся в памяти JVM. Манипуляции с флагами
HotSpot JVM имеет множество опций для отслеживания происходящего в виртуальной машине: PrintGC, PrintCompilation, TraceClassLoading и т.п. Как правило, они включаются параметрами командной строки, например, -XX:+PrintGCDetails. Однако порой возникает необходимость включить или выключить такой флаг непосредственно во время работы приложения, когда перезапуск JVM с другими параметрами невозможен. Этого можно добиться как штатным, так и хакерским способом, причем последний и мощнее, и интереснее. Впрочем, внимания заслуживают оба.Из данной статьи вы узнаете: где найти все флаги JVM, и на какие типы они делятся; как прочитать или установить флаг программно, используя JMX; как найти нужную область в памяти виртуальной машины и испортить модифицировать ее. Читать дальше →