LINUX.ORG.RU
ФорумTalks

Дайте совет по разборкам исходников


0

0

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

xaoтичнo

anonymous
()

1 ищу место где я хоть что-то понимаю и двигаюсь от него

2 чаще всего обламываюсь

3 читаю книжки, пишу сам... на фортране

WerNA ★★★★★
()

Для C/C++ есть такая штука -- Understand for C++. Или менее мощный вариант от RedHat -- Source Navigator. Вот ими и пользуюсь. Как ознакамливаться -- в основном читаешь снизу вверх, т.к. обычно именно так программы и пишутся :) Встречаешь вызов какой-то незнакомой функции -- переходишь к ней, читаешь ее; если слишком сложная, оставляешь на потом и т.д.

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

Source Navigator - действительно уже кое-что, довольно уюобно, спасибо.

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

Я это делал два раза. Первый раз - когда от нефиг делать портировал wolfenstein под win32. Там я просто прошелся по всему тексту от и до. И все понял. Другой раз - когда дорабатывал одну программулину. Там я один за одним вылавливал куски, которые отвечают за определенные фичи. Когда понял, где какая фича реализована, то оказалось, что весь код мне понятен.

anonymous
()

vim + ctags + cscope

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

я когда портировал игрульку в linux делал так: написал makefile для исходников (ну предварительно вкратце разобрался что к чему в них), потом тупо компилировал. Поскольку там было много каловых масс в виде WinAPI, MFC и DirectX, то создавал типы с такими же названиями или классы для DirectX и MFC (ходил на msdn, читал описание и делал свою реализацию для конуретных задач).

Заняло около 1,5 мес. работы по вечерам и выходным. Потом еще пару месяцев - исправление багов.

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

> ... потом тупо компилировал...

Сам так делаю. Зачастую помогает не зацикливаться на мелочах.

k_andy ★★★
()

Пытаюсь её скомпилировать и, как правило, оно валится - вот с того места и начинаю:)

UserUnknown ★★★★★
()

сначала я беру пару бутылок Gunness'а а по мере изучения -беру еще. Изучение заканчивается или когда удастся добиться стойкого падения в core или когда упаду под стол сам.

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

>Или менее мощный вариант от RedHat -- Source Navigator.

Вы меня извините за оффтоп, но попробовал эту штуку собрать.

Оно при ./configure вылетает с криками:

./configure: line 12325: syntax error near unexpected token `)'

./configure: line 12325: ` OSF*)'

configure: error: ./configure failed for unix

configure: error: ./configure failed for tcl

Во-первых, как это побороть?

Во-вторых, нахрена ему вообще tcl собирать? Оно что, установленный использовать не может?

anonymous
()

Я скармливаю исходники doxygen-у с включенными опциями включения в документацию недокументированого и генерации исходников. Потом разбираюсь по сгенерированой документации. Удобно тем, что в коде создаются ссылки на описания функций, типов и членов классов, а в описаниях функций и членов классов имеется список функций, где они используются.

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