construa um depurador simples com jdi para definir pontos de interrupção e recuperar o valor de uma variável

Eu estou olhando para construir um depurador usandointerface de depuração java.
Meu objetivo é definir um ponto de interrupção e obter o valor de uma variável.
eu encontreiesta responder perto do que estou procurando, entendo que preciso usar as seguintes interfaces: -VirtualMachineManager, LaunchingConnector, ClassPrepareEvent, ClassPrepareRequest. Mas não consigo descobrir como definir um ponto de interrupção em uma linha específica e obter o valor de uma variável ou em que ordem as interfaces devem ser usadas.

Por exemplo, no código abaixo, como faço para executá-lo comjdi de modo que eu recebo o valor da variávelS

import java.io.*;

class Hello {

  public static void main(String args[]) {
    String S = "Hello World";
    int a = 12;
  }
}

Estou pensando em definir o ponto de depuração na linhaa = 12 ou no fechamento do métodomain de modo que eu recebo o valor deS

questionAnswers(1)

yourAnswerToTheQuestion