Проверка целостности библиотеки - PullRequest
0 голосов
/ 17 октября 2011

Я создал сценарий для удаления бесполезного кода во многих библиотеках c ++ (например, ifdefs, комментарии и т. Д.)проделал хорошую работу.

Единственное решение, которое я нашел, это сравнить экспортированные символы.

Мне интересно, есть ли у вас другие идеи для проверки целостности?

Ответы [ 2 ]

1 голос
/ 17 октября 2011

ПЕРВЫЙ из всех: для этого предназначены юнит-тесты.


Вы можете получить некоторый пробег из

  • компиляция без оптимизации (-O0) и без отладочной информации (или strip впоследствии)
  • objdump -dCS

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

  • игнорировать адреса
  • игнорировать сгенерированные имена меток

Но если преобразование действительно приведет к неизмененному коду, вы сможете проверить его 1: 1, используя эту технику и немного потрудившись.

0 голосов
/ 17 октября 2011

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

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