【发布时间】:2016-12-04 14:24:45
【问题描述】:
我有一个遗留的 c 项目,其中包含许多类型转换和强制转换。通常为了检查溢出动态行为,gcc(和 C 语言)为此定义了一个内置函数:
内置函数:bool __builtin_add_overflow(type1 a, type2 b, type3 *res)
如果结果溢出,函数返回真。然后我的程序可能会捕捉到这种情况并采取相应的行动。
为了在不更改任何遗留代码的情况下拥有相同的功能,是否可以指示 gcc 使用此类内置函数并在内置函数返回 true 时调用提供的函数作为捕手?我希望我能找到类似的东西:
void _cyg_add_overflow_catcher(A, B, __FILE, LINE);
GCC 已经可以instrument functions,用于可追溯性和分析,所以这个概念并不奇怪。 有什么想法吗?
【问题讨论】:
-
有没有机会你可以简单地使用UBSan?
标签: c gcc overflow instrumentation ubsan