Инструмент для поиска глобальных / статических переменных в кодовой базе C - PullRequest
1 голос
/ 14 декабря 2010

Я создал оболочку C ++ (класс) для большой базы кода C, которая изначально была написана для микропроцессора.Теперь мы хотим смоделировать несколько экземпляров «агентов», выполняющих этот C-код.Поскольку мы хотим видеть, как они взаимодействуют, нам нужно запускать их одновременно.Если возможно, мы бы хотели запустить их в один процесс.

Сначала это не удалось, потому что код C использовал статические переменные и, следовательно, не был безопасным для потоков.Мы думали, что удалили все статические и глобальные переменные, но все еще не получили ожидаемых результатов.(Все работает нормально, если у нас есть только один экземпляр.)

Итак, мой вопрос: вместо поиска всей базы кода для таких переменных, есть ли какой-нибудь инструмент, который мог бы помочь найти проблему?Код на C был написан в Keil µVision и теперь компилируется в Visual Studio 2008 Team Suite.

Спасибо за предложения!

1 Ответ

1 голос
/ 14 декабря 2010

Если вы можете построить его в более удобной среде unix-ish, у вас должна быть команда size, которую вы можете запускать на .o файлах, которая сообщит вам размеры сегментов data и bss для каждого .o файл.Это очень быстрый способ найти переменные статической длительности хранения (просто посмотрите ненулевые размеры в любом из этих полей).

Возможно, вы могли бы попробовать собрать с помощью mingw или cygwin, или искать подобный инструмент вНабор инструментов MSVC.

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