嵌入式开发调试利器 | Sanitizer检测器
原文中文,约4200字,阅读约需10分钟。
📝
内容提要
Sanitizer是由Google发起的开源工具集,用于检测内存泄露等问题。它包括了AddressSanitizer、MemorySanitizer、ThreadSanitizer、LeakSanitizer等多种工具。这些工具最初是LLVM项目的一部分,后来也被GNU的GCC编译器支持。Sanitizer的使用例子包括捕捉栈缓冲区溢出问题和使用已释放内存问题。Sanitizer检测器不能同时使用,需要单独挨个检测。
❓
Q&A
Sanitizer是什么?
Sanitizer是由Google发起的开源工具集,用于检测内存泄露等问题。
Sanitizer包含哪些工具?
Sanitizer包括AddressSanitizer、MemorySanitizer、ThreadSanitizer、LeakSanitizer等工具。
如何使用AddressSanitizer进行内存检测?
使用AddressSanitizer时,编译时需加参数 -fsanitize=address。
ThreadSanitizer能检测哪些问题?
ThreadSanitizer用于检测数据竞争、死锁等线程相关问题。
AddressSanitizer和ThreadSanitizer可以同时使用吗?
AddressSanitizer和ThreadSanitizer不能同时使用,需单独检测。
如果程序中同时存在多种风险,应该如何检测?
需要使用多个检测器单独挨个检测,选择合适的检测器进行分析。