Короткий ответ, ваши предположения неверны.
Причина в том, что отладчику все равно, на каком языке вы отлаживаете. Он останавливается на точках останова, которые, в свою очередь, включают строку определенного исходного файла. Обратите внимание, что исходный файл - это просто текст для чтения - отладчик никогда не сканирует исходные файлы. Если вы измените место, где исходные файлы находятся, в другой каталог с текстовым файлом в правильном каталоге с правильным именем файла в качестве установленной точки останова, отладчик с радостью покажет это, когда точка останова произойдет. Каждый раз, когда вы устанавливаете точку останова, ваш идеал говорит отладчику, что он сканирует этот класс на наличие любого байтового кода в этой строке и останавливается, когда вы нажимаете на него. Это, конечно, не работает, если ваш ide пытается скомпилировать тот же текстовый файл в файл класса - однако это будет работать, если вы создадите поддельные текстовые файлы в качестве исходного файла JAR и выполните сопоставление исходного файла.
Если подумать, написать простой шаблон и скомпилировать его во время отладки поддержки не так уж и сложно. Просто используйте asm, чтобы создать все операторы печати, и скажите asm, что этот оператор печати находится в файле шаблона в этой строке. После этого вы можете добавлять более умные вещи, оставляя вещи отлаживаемыми.