检查库的完整性

时间:2011-10-17 09:01:19

标签: c++ compilation

我创建了一个脚本来删除许多c ++库中的无用代码(如ifdef,comments等)。

现在,我想比较原始的lib和“已处理的”lib来检查我的脚本是否做得很好。

我找到的唯一解决方案是比较导出的符号。

我想知道你是否有任何其他想法来检查完整性?

2 个答案:

答案 0 :(得分:1)

首先:单元测试是为此目的而设计的。


你可能会从

获得一些里程
  • 编译时没有优化(-O0)且没有调试信息(或之后是strip
  • objdump -dCS

并比较拆卸。准备满足一些/许多虚假错误(strip步骤是为了防止源行号信息的不必要的差异)。特别是你必须

  • 忽略地址
  • 忽略生成的标签名称

但是如果转换真的会导致未经修改的代码,那么你可以使用这种技术和一点点工作以1:1验证它。

答案 1 :(得分:0)

基于断言的单元测试会对你有所帮助。有一些测试用例,针对原始库运行它们,然后在删除代码的情况下运行。