LINUX.ORG.RU

Инструмент по ихучению Си кода.


0

3

Есть Си код, в котром замечательно переплетени многократно if, else и т.д., что даже с редактором, который скрывает/открывает скобки хрен поймёшь. А в коде надо разобраться.

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

Если не ошибаюсь, IDA например, даёт код в виде блок схем, но она кушает если не ошибаюсьь ассемблерный код. А мне нужно анализировать код Си, написанный элитными былокодерами.

Заранее прошу, не советуйте переписать код с нуля. Это и так понятно.


ихучению

а может он тебе и не нужен? с русским языком ты и так справился.

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

emacs+semantic могут помочь в деле ихучения.

А можно скриншоты? Просто мне интересно, как оно действует, но я не емаксер и настроить не смогу.

quiet_readonly ★★★★
()

Если он не отформатирован, то отформатировать (любой уважающий себя девелоперский редактор умеет). После этого проблем быть не должно. Если они таки остаются, значит нужно практиковаться.

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

неет, хех, у меня под рукой этого нет.

я тоже не емаксер. пытался, но вим для меня гораздо удобнее.

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

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

это умеет indent. не совсем дело редактора.

mos ★★☆☆☆
()

Есть Си код, в котром замечательно переплетени многократно if, else и т.д., что даже с редактором, который скрывает/открывает скобки хрен поймёшь. А в коде надо разобраться.

Так написанно 90% Сикода, да и любого другого кода.

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

кроссплатформенный
инструмент
в виде алгоритмов блок-сехем
блок-сехем

Мне тебя жаль.

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

Виноват не быдлокод, а неосилятор, который его читает.

procoder99
()

Давай сюда код.

Dron ★★★★★
()

astyle отформатирует тебе любой код.

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

Виноват не быдлокод, а неосилятор, который его читает.

зайдите на сайт wasm.ru там есть такой песонаж инде вы его вылитая копия ))) он то же тролль девятого уровня... )))

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

Не ну реально, как можно рассуждать о быдлокоде и блоксхемах в одном предложении - это слишком толсто. Да и вообще 90% кода быдлокод, чё помирать теперь?

Надо либо сесть и осилить, либо реализовать самому - либо забить. А мечтать о том, что есть какая-то мистическая тулза - которая мне в мои любимые блоксхемы переведёт 20метров лапши на сишке глупо и тупо. Пусть привыкает к реальному миру.

procoder99
()

Я когда-то прикручивал джойстик к виму для этих целей.. (%

vasily_pupkin ★★★★★
()

Интересный, конечно, вопрос. Ты можешь целиком на pastebin скинуть один из файлов example.c, чтобы над ним можно было опыты проводить?

justAmoment ★★★★★
()

попробуй через doxygen прогнать

EugeneBas ★★
()

Есть Си код, в котром замечательно переплетени многократно if, else и т.д., что даже с редактором, который скрывает/открывает скобки хрен поймёшь. А в коде надо разобраться.

А чем блок-схемы для подобного кода помогут? Там еще хуже все будет выглядеть по сравнению отформатированным кодом.

Для начала по мере разбирания в коде можно разделять логически связные куски пустыми строками и добавлять комментарии (в быдлокоде их наверняка нет). Зачем помаленьку рефакторить и выносить блоки кода в отдельные отдельные функции с подходящими именами, по мере возможности устраняя copy/paste (в былокоде его часто используют).

kamre ★★★
()

но она [IDA] кушает, если не ошибаюсь, ассемблерный код

Правильно, так и надо анализировать.

Если код собирается, компилируешь его каким-нибудь приличным компилятором (GCC, clang, ICC) с максимальной оптимизацией, после чего дизассемблируешь и изучаешь.

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

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