zoukankan      html  css  js  c++  java
  • Dump文件数据存储格式(五)

    七、线程列表流(ThreadListStream)

    ThreadListStream流包含线程核心信息。它紧挨着异常信息流(ExceptionStream)。

    异常信息流如下

    0x678+0n168=0x720。而线程列表流如下

    可知偏移是0x720,即证明杂项信息流是紧挨着系统信息流,大小有3796字节。

    ThreadListStream包含的数据结构如下:

    typedef struct _MINIDUMP_THREAD_LIST {
      ULONG32         NumberOfThreads;
      MINIDUMP_THREAD Threads[0];
    } MINIDUMP_THREAD_LIST, *PMINIDUMP_THREAD_LIST;

    成员如下:

    NumberOfThreads

    线程数量的个数

    Threads

    一个 MINIDUMP_THREAD 结构的数组.

    我们可知,线程列表流就是MINIDUMP_THREAD的数组流。而MINIDUMP_THREAD结构如下

    typedef struct _MINIDUMP_THREAD {
      ULONG32                      ThreadId;
      ULONG32                      SuspendCount;
      ULONG32                      PriorityClass;
      ULONG32                      Priority;
      ULONG64                      Teb;
      MINIDUMP_MEMORY_DESCRIPTOR   Stack;
      MINIDUMP_LOCATION_DESCRIPTOR ThreadContext;
    } MINIDUMP_THREAD, *PMINIDUMP_THREAD;

    这个结构包含特定线程的信息。成员如下:

    ThreadId

    线程标识

    SuspendCount

    线程的挂起计数。如果挂起计数大于零,则线程被挂起;否则,线程不挂起。最大值为MAXIMUM_SUSPEND_COUNT。

    PriorityClass

    线程的优先级类别

    Priority

    线程的优先级。

    Teb

    线程环境块。

    Stack

    一个MINIDUMP_MEMORY_DESCRIPTOR 结构,指向线程栈.

    ThreadContext

    一个 MINIDUMP_LOCATION_DESCRIPTOR 结构.指向线程上下文

    MINIDUMP_MEMORY_DESCRIPTOR结构是描述一定范围的内存。如下

    typedef struct _MINIDUMP_MEMORY_DESCRIPTOR {
      ULONG64                      StartOfMemoryRange;
      MINIDUMP_LOCATION_DESCRIPTOR Memory;
    } MINIDUMP_MEMORY_DESCRIPTOR, *PMINIDUMP_MEMORY_DESCRIPTOR;

    成员如下:

    StartOfMemoryRange

    内存范围的起始地址。

    Memory

    一个MINIDUMP_LOCATION_DESCRIPTOR 结构.指向栈信息在文件里的偏移

    从以上信息,我们可知,平时我们调试时,执行~*kb等指令的展示的数据主要就来源这个流了。

  • 相关阅读:
    并查集 示例 : poj 1703 [Find them, Catch them 帮派之争]
    《Python 第五章》条件,循环和其他语句
    《Python 第一章》基础知识
    heapSort 堆排序 / 二叉堆
    并查集 hdu 1856 示例
    KMP / hdu 1711 [找到匹配的位置并返回]
    《Python 第四章》字典
    EnumChildWindows的使用
    C#查找指定窗口的子窗口的句柄
    C#里字符串取左边N个字符,右边N个字符,从中间取N个字符的函数
  • 原文地址:https://www.cnblogs.com/yilang/p/13850980.html
Copyright © 2011-2022 走看看