Инструмент для определения происхождения символа в C - PullRequest
0 голосов
/ 22 декабря 2008

Я ищу инструмент, который, учитывая немного C, скажет вам, какие символы (типы, определения прекомпилятора, функции и т. Д.) Используются из данного заголовочного файла. Я делаю порт большого драйвера из Solaris в Windows и выясняю, откуда все идет, становится трудно, так что это будет огромной помощью. Есть идеи?

Редактировать: не абсолютное требование, но инструменты, работающие в Windows, были бы плюсом.

Edit # 2: Чтобы уточнить, что я пытаюсь сделать, у меня есть кодовая база, которую я пытаюсь портировать, что приводит к большому количеству заголовков. Мне нужен инструмент, который, учитывая foo.c, скажет мне, какие символы он использует из bar.h.

Ответы [ 4 ]

1 голос
/ 22 декабря 2008

Я использую как в Linux, так и в Windows: gvim + ctags + cscope .
Та же среда будет работать и на Solaris, но это, конечно, заставит вас использовать vim в качестве редактора, я уверен, что emacs может работать как с ctags, так и с cscope. Возможно, вы захотите попробовать vim, сначала это немного сложно, но скоро вы не сможете работать по-другому. Самый эффективный редактор (ИМХО).

Повтор комментариев:

Посмотрите на Человека-микроскопа :

...

Поиск функций, вызываемых этой функцией:
Найти функции, вызывающие эту функцию:

...

Я думаю, это именно то, что вы ищете ... Пожалуйста, уточните, если нет.

Повтор комментариев 2:

хорошо, теперь я вас понимаю. Инструменты, которые я предложил, могут помочь вам понять поток кода и найти там определенный символ, но не то, что вы ищете.

Не то, что вы просите, но, поскольку мы говорим, у меня есть некоторый опыт работы с портированием и драйверами (не стесняйтесь игнорировать)

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

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

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

1 голос
/ 22 декабря 2008

Мне нравится KScope , который отлично справляется с очень большими проектами.

KScope http://img110.imageshack.us/img110/4605/99101zd3.png

0 голосов
/ 26 декабря 2008

emacs и etags.

И я использую make для запуска индексации тегов для меня - таким образом, я могу индексировать большой проект одной командой. Я думал о создании главного индекса и отдельных индексов модулей, но пока не удосужился реализовать это ...


@ Илья : Пригодны ли пистолеты на рассвете?

0 голосов
/ 22 декабря 2008

Попробуйте doxygen , он может создавать графики и / или HTML и настраивать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...