LINUX.ORG.RU

IDE для навигации по исходникам OpenJDK Hotspot

 , , ,


0

2

Хочу иметь возможность удобно перемещаться по коду, но не могу найти подходящую IDE. Я пробовал использовать некоторые популярные (Clion, QtCreator, NetBeans), но настроить их удобно (то есть, чтобы можно было по контрол-клику находить нужные определения) не удавалось. В основном, все они требовали, чтобы были прописанны нужные #include, но в файлах исходников они зачастую отсутствуют. Сейчас я остановился на grep + vim, но это очень неудобно и долго. Хотелось бы иметь решение на базе Clion, так как я его для других проектов использую, но это не столь важно.


В основном, все они требовали, чтобы были прописанны нужные #include, но в файлах исходников они зачастую отсутствуют.

Это очень плохая практика

vertexua ★★★★★
()

https://code.woboq.org/ не пробовал? Я с помощью него люблю по исходникам STL clang'a ориентироваться.Ну и ядро этого вашего Линупса тоже вполне удобно в нём читается.

mkam
()

В основном, все они требовали, чтобы были прописанны нужные #include, но в файлах исходников они зачастую отсутствуют

Eclipse CDT умеет извлекать пути к заголовочным файлам из выхлопа компилятора.

tailgunner ★★★★★
()

Сейчас я остановился на grep + vim,

Можно пойти дальше и использовать ag вместо grepа. Плюс ctags для поиска определения под курсором, правда не знаю можно ли вим настроить на контролклик+ctags.

habamax ★★★
()
Ответ на: комментарий от mkam

Попробую, компиляю. Хотелось бы, конечно, чтобы это было в IDE, но если хотя бы это сработает, то будет хорошо.

pdip28
() автор топика
Ответ на: комментарий от tailgunner

Я так понимаю, что Clion мне предлагает то же самое делать, нужно только нажимать alt+enter. Проблема в том, что таким способом мне очень долго придется это руками делать :( Оставлю такой способ напоследок.

pdip28
() автор топика
Ответ на: комментарий от pdip28

Проблема в том, что таким способом мне очень долго придется это руками делать

Каким «таким» и причем здесь CLion? CDT выполняет сканирование выхлопа автоматически.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Видимо, я не так понял. Ок, попробую Eclipse CDT.

pdip28
() автор топика

В основном, все они требовали, чтобы были прописанны нужные #include, но в файлах исходников они зачастую отсутствуют.

Такие «исходники» имеют свойство неожиданно перестать собираться при смене ОС или версии компилятора/тулкита. Проверено.

hobbit ★★★★★
()

попробуй vim-rtags, но qtc работает обьективно быстрее пока что.

pon4ik ★★★★★
()

В хотспоте код зело суровый же, типичный пример:

void NewInstanceStub::emit_code(LIR_Assembler* ce) {
  assert(__ rsp_offset() == 0, "frame size should be fixed");
  __ bind(_entry);
  __ mov(r3, _klass_reg->as_register());
  __ far_call(RuntimeAddress(Runtime1::entry_for(_stub_id)));
  ce->add_call_info_here(_info);
  ce->verify_oop_map(_info);
  assert(_result->as_register() == r0, "result must in r0,");
  __ b(_continuation);
}

У меня в нетбинце ctrl+click тоже нечасто срабатывает, его похоже макросы смущают. Зато ctrl+f по имени метода срабатывает всегда.

anonymous
()

Пока что остановился на Eclipse, показалось лучше всего остального, но все равно не очень удобно, многие вещи прокликать не получается.

pdip28
() автор топика

Нашел отличный вариант для Eclipse CDT, хорошо парсит все файлы исходников и по ctrl + click все работает. Эту директорию нужно поместить в jdk8/hotspot и импортировать как проект в Eclipse. Должно быть как-то так:

[~/work/jdk8u_vanilla/hotspot/hotspot] % ls -a
.  ..  .cproject  .project  .settings

pdip28
() автор топика
Ответ на: комментарий от pdip28

Спасибо, не ожидал что тебе из оракла ответят на такой вопрос (в опенждк мейллисте), а сам я никогда бы не догадался посмотреть в граальный проект. Попробую еклипц настроить, знаю еще в нем есть какой-то правильный плагин для удаленного дебага, который не требует гдбсервер на стороне сервера. Директ ремот вроде, давно хотел попробовать, но не хотелось связыватьсч с еклипсом.

anonymous
()
26 декабря 2016 г.

Готовые конфиги для nb

Загляни в opendjdk/commons/nb_native, там лежат огромные конфиги для netbeans

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.