当前位置: 首页 > article >正文

ASAN ThreadSanitizer定位多线程(资源管理)

ThreadSanitizer又叫TSan,是一个检查线程Data Race的C/C++工具。

1,环境部署参考上一篇文章。

2,多线程资源互斥示例代码

#include <pthread.h>
#include <stdio.h>
 
int global;
 
void *test_thread1(void *x) {
  global++;
  return NULL;
}
 
void *test_thread2(void *x) {
  global--;
  return NULL;
}
 
int main() {
  pthread_t t[2];
  pthread_create(&t[0], NULL, test_thread1, NULL);
  pthread_create(&t[1], NULL, test_thread2, NULL);
  pthread_join(t[0], NULL);
  pthread_join(t[1], NULL);
}

编译:

lark@ubuntu:~/test$ gcc main2.c -fsanitize=thread -fPIE -pie -g
/usr/bin/ld: cannot find libtsan_preinit.o: No such file or directory

这个时ubuntu20.04上面的问题,22.04后面应该没这个问


http://www.kler.cn/a/378576.html

相关文章:

  • angular实现list列表和翻页效果
  • Linux和,FreeRTOS 任务调度原理,r0-r15寄存器,以及移植freertos(一)
  • Linux中使用NGINX
  • axios竟态问题
  • django的models使用介绍。
  • 【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--接口路径管理
  • LabVIEW过程控制实验平台
  • Flutter InkWell组件去掉灰色遮罩
  • C#医学检验信息系统LIS源码,医院检验科信息管理系统源码
  • 编程八种语言谁是最受市场青睐的?
  • 【已解决】cra 配置路径别名 @ 后,出现 ts 报错:找不到模块“@/App”或其相应的类型声明。ts(2307)
  • 【jvm】Major GC
  • 基于SpringBoot的视频点播系统设计与实现
  • 【计算机基础——操作系统——Linux】
  • Cuebric:用AI重新定义3D创作的未来
  • 两道算法题
  • Unreal5从入门到精通之如何在VR中使用3DUI
  • 【SpringMVC】传递json,获取url参数,上传文件
  • Redis-结构化value对象的类型
  • GBDT算法Python代码实现
  • HTML5和CSS3 介绍
  • 加强版 第六节 图像轮廓几何属性分析
  • 无人机维修培训班开班课程技术详解
  • 「Mac畅玩鸿蒙与硬件17」鸿蒙UI组件篇7 - Animation 组件基础
  • npm入门教程17:准备发布的npm包
  • 家具制造的效率与美观并重,玛哈特矫平机让家具产品更具竞争力。