g

您所在的位置:网站首页 gdb多线程调试书籍 g

g

2024-07-13 10:06| 来源: 网络整理| 查看: 265

代码调试工具gdb是一个能够让我们在工作中高效排查代码异常根源的利器。 在此将gdb针对多线程的调试方式做一个笔记,也方便后续回顾以及分享大家。

本文采用的是一个简单的多线程代码示例,同时调试是在mac上进行的 mac安装gdb brew install gdb即可

基本命令介绍

开始之前先简单介绍几个gdb调试多线程的子命令

layout next 开启子窗口,显示当前程序运行所在的源码位置b xxx 在某一行,或者某一个函数处增加断点info b 查看断点信息r 运行程序info threads 查看当前可调试的所有线程信息where 查看进程运行到当前位置的函数调用栈信息thread num 调试状态切换到线程numbreak thread_test.cc:123 thread all 在所有线程中相应的行上设置断点thread apply all id1 id2 command 让一个或者多个线程执行GDB命令thread apply all command 让所有被调试线程执行gdb命令 commandwatch variable 在断点当前位置增加变量的variable的监控信息,后续运行的时候会打印c 继续运行,直到遇到断点停顿 示例1

目标:在不加锁的情况下,多个线程的运行交叉运行的,导致进程内部共享的变量对外的体现不是连续的。 代码如下

#include #include #include using namespace std; static int g_a = 0; void pthread_func1() { for (int i = 1;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3