LINUX.ORG.RU

C/C++ code navigation, call graph

 ,


2

4

Добрый всем день!

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


Пиши код так, чтоб навигация по нему была очевидна :) И диаграмму вызовов не пост-фактум строй, а проектируй :) Не пускай все на самотек!

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

Спасибо за подсказку. Пока впечатления хорошие.

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

Да не надо мне ничего переписывать - разобраться надо. Будь проще - и люди к тебе потянутся.

Скорее всего для разработки это не подойдет …

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

Спасибо, но не рефкторинг, а, скорее, адаптация к своим потребностям. Ставить VSCode - не очень хочется

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

А для простой навигации по коду есто что-нибудь?

Как ты себе это представляешь? Плагин к IDE хочешь?

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

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от SZT

К счастью

в цикле вызываются функции из массива функций, и этот массив функций динамически генерируется в процессе работы

таких ужасов нет. Но общую идею вашу я понял.

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

Или будь сложнее, и все от тебя отъебутся :) Зависит от цели.

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

Ok, спасибо. Вместе с vim’ом выглядит интересно.

braboar
() автор топика
Ответ на: комментарий от braboar
The opt command is the modular LLVM optimizer and analyzer. It takes LLVM source files as input, runs the specified optimizations or analyses on it, and then outputs the optimized file or the analysis results. The function of opt depends on whether the -analyze option is given.

When -analyze is specified, opt performs various analyses of the input source. It will usually print the results on standard output, but in a few cases, it will print output to standard error or generate a file with the analysis output, which is usually done when the output is meant for another program.

While -analyze is not given, opt attempts to produce an optimized output file. The optimizations available via opt depend upon what libraries were linked into it as well as any additional libraries that have been loaded with the -load option. Use the -help option to determine what optimizations you can use.

If filename is omitted from the command line or is “-“, opt reads its input from standard input. Inputs can be in either the LLVM assembly language format (.ll) or the LLVM bitcode format (.bc).

If an output filename is not specified with the -o option, opt writes its output to the standard output.
anonymous
()
Ответ на: комментарий от braboar

Спасибо, добрый человек! Буду знакомиться.

На ЛОР все добрые.
Иногда правда любят УЧЕНОСТЬ на себя напустить …

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

Добрый человек

  • это отсылка к Булгакову. «Все люди добрые, только не все об этом знают»
braboar
() автор топика
Ответ на: комментарий от Im_not_a_robot

Ничем. В VS более навороченный функционал, но ТС нужно именно это

IIIypuk ★★★
()

Не понял что тебе нужно, но вот это - https://github.com/namhyung/uftrace строит диаграммы вызова в рантайме. Еще во флаймграф умеет. Если нужно в «статике», то ищи что-нибудь основанное на clangd. Для С++ лучше если код индексирован на основе AST.

PRN
()

Всем спасибо, жизнь становится лучше!

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