vnf部署有哪几种模式,rdo部署openstack完整步骤

后台插件编译选项-fsanitize=address用户状态检测到内存错误、 通过环境变量ASAN_OPTIONS控制特定行为-fsanitize=kernel-address内核状态内存错误检测器-fsanitize=thread启用thread sanitizer-fsanitize=仅在-fsanitize=address和-fsanitize=thread都无效时有效。 -fsanitize=address的功能不全面,只进行内存泄漏检测,但比-fsanitize=address快。 内存泄漏检查-fsanitize=leak仅在GCC版本4.9时有效。 -fsanitize=undefined运行时高速未定义行为检测器。 有17个子选项,从6到22 : -fsanitize=shift移位运算符的移位大小超出位宽或小于零,或者左侧为负值。 对于有符号数移位,用c表示符号溢出,用c表示检查无符号溢出。 – fsanitize=integer-divide-by-zero整数的除零。 -fsanitize=unreachable控制流为_ _ builtin _ unreachable.- fsanitize=vla-bound可变长度数组的边界值不正确。 -fsanitize=null使用空指针或创建空引用。 -fsanitize=return只有c有效,它检查函数的返回值,并定义返回值为非空的函数如果没有返回有效值,就会出现错误。 – fsanitize=signed-integer-overflow带符号整数溢出。 包括-ftrapv中添加的所有检查,并检查有符号除法溢出(INT_MIN/-1)。 -fsanitize=bounds数组索引允许静态检测越界、数组边界。 -fsanitize=alignment使用未对齐的指针或引用。 尝试使用-fsanitize=object-size优化程序检测未访问的字节。 对象的大小由__builtin_object_size检测,从而可能检测到多个问题的高级优化。 – fsanitize=float-divide-by-zero浮点零除。 在-fsanitize=undefined中不可用。 不能在-fsanitize=undefined中启用从浮点到格式转换的检查。 -fsanitize=nonnull-attribute使用__attribute__ nonnull限定参数检查非空函数。 – fsanitize=returns-nonnull-attribute使用__attribute__((returns_nonnull ) )检测仅限于非空指针的函数-fsanitize=bool加载非真或假的bool值。 -fsanitize=enum加载枚举类型的值,但该值不在该枚举类型的范围内。 -fsanitize=vptr使用vptr表示错误的动态类型对象或生命长度尚未开始或结束。 与-fno-rtti兼容。 -fno-sanitize=all禁止以前的所有子选项,并且不能使用-fsanitize=all。 由于某些子选项不兼容,-fasan-shadow-offset=number将自定义地址扫描仪检查的shadow偏移- fsanitize-recover [=oposition 例如,-fsanitize-recover=undefined,float-cast-overflow,float-divide-by-zero-fno-sanitize-recover是- ffined

可以使用readelf、objdump等命令验证是否启用了ASAN编译。

readelf -a libxx.so | grep asan运行环境变量ASAN_OPTIONS配置# halt_on_error=0:检测到内存错误并继续运行

# detect_leaks=1:有效内存泄漏检测

# malloc_context_size=15 :如果发生内存错误,显示的调用栈的层数为15

# log _ path=/system/lib/asan.log :内存检查问题日志的文件路径。 您需要考虑是否具有写入权限。)

# suppressions=$SUPP_FILE:掩码打印中的某些内存错误

export asan _ options=halt _ on _ error=0: use _ sigaltstack=03360 detect _ leaks=13360 malloc _ context _ siii

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注