LINUX.ORG.RU

с помощью какой ide вы исследуете исходники c/c++ библиотек?

 , ,


1

4

здравствуйте, надоело grep-пать исходники на поиск реализации и т.д. чем вы предпочитаете открывать исходники? ну, имеется ввиду, если у проекта система сборки cmake, то проект отлично открывается qtcreator-ом с соответствующими плюшками современных ide... другое дело, если проект старый и на autoconfig... то чем его можно открыть?

другое дело, если проект старый и на autoconfig... то чем его можно открыть?

Qt Creator поддерживает Autotools (частично, так как нужен файл Makefile.am).

Исследую тоже Qt Creator'ом, но иногда не брезгую и обычным блокнотом, вроде Kate/Gedit в сочетании с grep'ом.

EXL ★★★★★ ()

открываю в vim по определениям перехожу gf gd, структуру файла сразу видно в tagbar через него прыгаю по функциям, структурам и прочему, очень часто просто смотреть в исходники сложно из за обилия макросов которые генерируют через макросы макросы и те уже делают структуры или функции тогда предварительно прогоняю всё через cpp и уже потом гляжу, но эт всё фигня, если просто узнать как работает тот или иной кусок нужно просто найти причастные файлы исключая общие и глазками их исследовать, если нужен весь проект то тоже самое, но маштабнее открываешь мля как книжку и листаешь фай за файлом, файл за файлом, первый проход общий что в голове отложились триггеры где что понаписано и как связано, второй раз уже видишь как устроенна модульность, а уже потом можно вникать в реализацию функций структур и прочего, когда понимаешь что откуда дёргается. Попутно рисую схему на листочке, ну просто типа граф отображающий что и как связанно, можно конечно доксигеном прогнать, но несоизмеримо лучше помнится и понимается то что накалякаешь со смайликами ручкой на бумажке чем гдядеть на автоген изображения, хотя иногда путанница такая что мама-памагити тогда доксигеном все исходники просмотри картинок и уже потом опятьже последовательный просмотр кода, но это всё только в случае что бы понять как устроенны потроха для модификации оных с гарантией что не отвалится потом что-то. Но не гани не греп, быстрее него узнать по быстрому где тебе все вхождения нужного если не не возможно то не знаю бесмысленно как то. Но думаю есть вариант, сгенерировать tags для всего проекта и как то его отобразить, получится огромный список, но! можно будет через один список прыгать вообще по всему проекту, хмммм.... надо поглядеть может тагбар может рекурсивно строить дерево тегов? Короче пока я это писал мне пришла мысль, если что отпишу.

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

Но не гани не греп

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

xperious ()

Вкати Geany, да плагины не забудь. Да и славно будет.

Серьёзно, если не требуется привязка к определённому феймворку, это наиболее удобный и гибкий вариант.

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

Например, вот в этом примере реально сходить по исходникам и понять что стоит за типом Ray_intersection?

Там Clang в качестве парсера со всеми вытекающими.

Так реально или нет? :)

Тут за Eclipse CDT и CLion беспокоится нужно.

За CDT точно не нужно (не по причине какой-то особенной качественности парсера в CDT, а по причине распространенности среди вендоров).

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

Так реально или нет? :)

http://esxi.z-lab.me:666/~exl_lab/movies/qtc_clang.webm

kamre

Пока только знаю что Reshaper C++ в MSVC не осиливает нормальную навигацию по таким шаблонам.

P.S. Стандартный парсер QtCreator тоже запинается.

EXL ★★★★★ ()

если проект мелкий, то грепаю, плюс Code::Blocks. Сmake умеет экспортировать в codeblocks проекты, сам Code::Blocks умеет импортировать из других проектов, но и без этого у него есть поиск по файлам в каталоге.

а если проект крупный (вроде кернела или gcc), то загоняю его в lxr и смотрю там.

Iron_Bug ★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 1)

другое дело, если проект старый

ну если тебе собирать не надо, просто запускаешь qmake -project в директории с проектом и получаешь .pro со всеми файлами.

fluorite ★★★★★ ()