Как сделать удаленную отладку в JamVM?

У меня есть версия jamvm 1.5.4 (Java-версия 1.5.0) и у меня нет выбора по поводу обновления или изменения (на самом деле, я думаю, что это последняя версия).

Мне бы очень хотелось подключить удаленный отладчик к некоторому старому коду, который я написал, поэтому моей первой мыслью было следующее заклинание:

jamvm -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n ...

К сожалению, нет кости там (ни -Xdebug или же -Xrunjdwp были признаны).

Итак, я сделал быстрый jamvm -help а потом jamvm -X и немного почитал. Ничто не предполагало возможность подключения удаленного отладчика.

Наконец, я обратился к нашему старому другу мистеру Гуглеру и нашел этот вопрос на SourceForge без ответа.

Так что я думаю, что я scuppered, если никто не знает иначе, отсюда это...

Есть ли способ сделать удаленную отладку с помощью JamVM?

1 ответ

Решение

Простой ответ - "Нет".

На самом деле я хотел выполнить профилирование на целевом оборудовании (ARM), на котором запущен jamvm, потому что оно работало значительно медленнее, чем на моем рабочем столе с виртуальной машиной Oracle HotSpot.

Я проверил источники JamVM, но скрытой магии нет. JamVM был очень компактным, поэтому в него была добавлена ​​поддержка удаленной отладки, профилирования, JMX и еще много чего.

Что вы можете сделать, это использовать -verbose чтобы немного понять, что происходит. С помощью :class например, я, по крайней мере, смог обнаружить огромное узкое место в производительности, наблюдая за загрузкой классов.

jamvm -verbose[:class|gc|jni]
   :class print out information about class loading, etc.
   :gc print out results of garbage collection
   :jni print out native method dynamic resolution

Тем не менее, поскольку у нашего приложения есть какой-то тонкий HAL, я могу запустить его на настольном компьютере, используя все возможности IDE, профилировщиков и отладчиков, что я и хотел бы предложить.

Если это невозможно из-за какого-то конкретного аппаратного кода, который не будет работать на рабочем столе, к сожалению, я не знаю другого способа, кроме как выполнять некрасивую "отладку printf".

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