• 《Win32多线程程序设计》学习笔记 第12章 调试


    有计划的对付错误

    在每一个你的假设指出做检验工作。进入一个函数时,确认所有状态,不要只是检查指针是否合法;如果可能,检查一下指针所指结构中的数据是否一致。

    线程对话框

    VC调试器支持多线程的情况。我们可以挂起要调试的线程之外的所有线程,从而将调试焦点放在某个线程身上。

    运转记录

     就是使用输出如printf将程序的运行状态输出出来,用于调试,这些输出一般输出到标准输出,很容易重定向到文件中。在stdout中记录运行过程,并不能抱枕你看到的输出次序就是实际的运行次序,这是由于多线程版本的C Runtime library使用互斥保证每次只有一个线程使用stdout,所以在运行和写入stdout中间,可能发生context switch。

    内存记号(Memory trail)

     将运转记录写向文件中,花费的时间可能会影响多线程的运行结果。将运转记录写到内存中可以改善这些情况,就是内存记号

    char gMemTrail[2048];
    char * pMemTrail = gMemTrail;
    每当想输出某个东西到文件中,就写一个记号到MemoryTrail中
    *pMemTrail++ = 'D';

    当程序停在一个线程的断点时,我们可以通过查看内存内容来查看设置的内容。

    科学方法

     为了将一个多线程版本的程序中的错误除尽,需要三种素养

    耐心

    决心

    创造力

  • 相关阅读:
    Excel中删除含有空值的整行或是整列
    Power Pivot(二)
    Power Pivot(一)
    携程数据清洗
    Matplotlib基础绘图
    Pandas 数据清洗常见方法
    天猫美妆数据清洗步骤概括
    淘宝美妆双十一数据可视化(下)
    淘宝美妆双十一数据清洗(上)
    乐高天猫旗舰店数据分析
  • 原文地址:https://www.cnblogs.com/kwliu/p/2195904.html
Copyright © 2020-2023  润新知