工程师必备:C/C++单元测试万能插桩工具

💡 原文中文,约3200字,阅读约需8分钟。
📝

内容提要

腾讯安全平台部研发的动态插桩工具可优化研发效能,绕过编译器限制对C/C++代码进行插桩,实现单元测试的轻量化运行和提高代码覆盖率。支持插桩全局函数、成员函数、虚函数以及系统和第三方库函数。适用于X86_64平台上的Linux和MacOS系统。

🎯

关键要点

  • 腾讯安全平台部研发的动态插桩工具旨在优化研发效能,支持C/C++代码的轻量化单元测试和提高代码覆盖率。

  • 现有的C/C++插桩工具存在使用限制,无法有效处理非虚函数和系统接口等情况。

  • 动态插桩工具通过修改机器指令绕过编译器限制,实现对函数的动态替换。

  • 插桩函数能够模拟原函数的返回值,并对原函数具有完全的操作能力。

  • 工具支持对全局函数、普通成员函数、静态成员函数、虚函数及系统和第三方库函数进行插桩。

  • 使用时需注意支持的平台为X86_64的Linux和MacOS,Windows及其他平台可在短期内支持。

  • 在MacOS下执行前需对单测可执行文件进行特定修改,且建议关闭内联和编译器优化。

  • 项目地址为https://github.com/wangyongfeng5/lmock,欢迎交流与探讨。

➡️

继续阅读