2011-12-21 2 views
0

я проектирую построить свой собственный отладчик байт-коды зрения:Создание свой собственный отладчик

  • Токи «объекты» в операндами стека;
  • иметь визуальное представление фреймов;
  • иметь список объявленных объектов в куче Java (текущей программы);
  • иметь список постоянных бассейнов и т.д.

Проблема в том, я хочу, чтобы установить в место точек останова варианты моей программы и увидеть приложение в реальном.

Я посмотрел в Интернете способ сделать отладчик, и я нашел JDPA, который, вероятно, мог бы помочь мне сделать мой проект.

Но я не уверен, что это хорошо, потому что я не хочу отладчика Java, мне действительно нужен отладчик Bytecode.

Как можно вставить байт-коды в точку останова в проекте? Я вижу в Интернете, что «0xca зарезервировано как команда прерывания для отладчиков и не используется языком». Это хороший способ?

ответ

2

Вариант №1: Использование JPDA вы можете использовать метод com.sun.jdi.request.EventRequestManager.createBreakpointRequest(), вы можете добавить точку останова на любой номер Location. За документации Java на Location класса это

Точка внутри исполняемого кода мишени VM.

Это может быть местоположение байт-кода или местоположение линии источника.

Вариант № 2: Если вы можете найти метод, в котором находится байт-код, вы можете поместить искусственную точку останова в ваш отладчик на основе JPDA, потому что вы можете указать смещение байт-кода с начала функции.

Смежные вопросы