• GDB调试多线程


    info threads                        查看当前进程的线程。
                                              GDB会为每个线程分配一个ID, 后面操作线程的时候会用到这个ID.
                                              前面有*的是当前调试的线程.
    thread <ID>                      切换调试的线程为指定ID的线程。
    break file.c:100 thread all    在file.c文件第100行处为所有经过这里的线程设置断点。
    set scheduler-locking off|on|step    
          在使用step或者continue命令调试当前被调试线程的时候,其他线程也是同时执行的,
          怎么只让被调试程序执行呢?
          通过这个命令就可以实现这个需求。
             off      不锁定任何线程,也就是所有线程都执行,这是默认值。
             on       只有当前被调试程序会执行。
             step     在单步的时候,除了next过一个函数的情况
                      (熟悉情况的人可能知道,这其实是一个设置断点然后continue的行为)以外,
                      只有当前线程会执行。
    thread apply ID1 ID2 command        让一个或者多个线程执行GDB命令command
    thread apply all command            让所有被调试线程执行GDB命令command。

    set non-stop on/off:
    当调式一个线程时,其他线程是否运行。
    set pagination on/off:
    在使用backtrace时,在分页时是否停止。
    set target-async on/ff:
    同步和异步。同步,gdb在输出提示符之前等待程序报告一些线程已经终止的信息。而异步的则是直接返回。
    show scheduler-locking:
    查看当前锁定线程的模式
  • 相关阅读:
    数据预处理之中心化(零均值化)与标准化(归一化)
    机器学习入门篇——感知器
    JAVA实现QQ聊天气泡
    设计模式学习笔记—策略模式
    JComboBox实现时间控件
    JTree实现QQ好友列表
    JAVA实现带图片的列表——JList
    JAVA与数据库MySQL相连接
    SQL语句
    HTML学习笔记——标签(二)
  • 原文地址:https://www.cnblogs.com/nanqiang/p/9934254.html
Copyright © 2020-2023  润新知