dbgrprof.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. /*++
  2. Copyright (c) 2013 Minoca Corp. All Rights Reserved
  3. Module Name:
  4. dbgrprof.h
  5. Abstract:
  6. This header contains definitions for the debugger profiler support.
  7. Author:
  8. Chris Stevens 11-Jul-2013
  9. --*/
  10. //
  11. // ------------------------------------------------------------------- Includes
  12. //
  13. //
  14. // ---------------------------------------------------------------- Definitions
  15. //
  16. //
  17. // ------------------------------------------------------ Data Type Definitions
  18. //
  19. /*++
  20. Enumeration Description:
  21. This enumeration describes the various profiler display requests that can
  22. be made to a profiler UI console.
  23. Values:
  24. ProfilerDislayInvalid - Indicates an invalid choice.
  25. ProfilerDisplayOneTime - Indicates that a one-time snap shot of the data
  26. should be displayed.
  27. ProfilerDisplayThreshold - Indicates that a one-time snap shot of the data
  28. should be displayed, but only display data up to the threshold value.
  29. ProfilerDisplayStart - Indicates that continuous collection and display of
  30. profiler data should begin.
  31. ProfilerDisplayStop - Indicates that continuous collection and display of
  32. profiler data shoul stop.
  33. ProfilerDisplayClear - Indicates that the profiler data display should be
  34. cleared of all data collected up to the point of this request.
  35. ProfilerDisplayStartDelta - Indicates that the profiler display should only
  36. show the deltas in data from the current time forward.
  37. ProfilerDisplayStopDelta - Indicates that the profiler display should stop
  38. only displaying the deltas in data.
  39. --*/
  40. typedef enum _PROFILER_DISPLAY_REQUEST {
  41. ProfilerDisplayInvalid,
  42. ProfilerDisplayOneTime,
  43. ProfilerDisplayOneTimeThreshold,
  44. ProfilerDisplayStart,
  45. ProfilerDisplayStop,
  46. ProfilerDisplayClear,
  47. ProfilerDisplayStartDelta,
  48. ProfilerDisplayStopDelta
  49. } PROFILER_DISPLAY_REQUEST, *PPROFILER_DISPLAY_REQUEST;
  50. /*++
  51. Structure Description:
  52. This structure defines call stack data used for profiler tracing.
  53. Members:
  54. SiblingEntry - Stores the element's entry into its list of siblings.
  55. Children - Stores a list of the element's child stack entries.
  56. Parent - Stores a pointer to the parent stack data entry.
  57. Address - Stores the current address for this stack entry.
  58. AddressSymbol - Stores a string representation of the stack entry's address.
  59. Count - Stores the number of times that the address has been encountered.
  60. --*/
  61. typedef struct _STACK_DATA_ENTRY STACK_DATA_ENTRY, *PSTACK_DATA_ENTRY;
  62. struct _STACK_DATA_ENTRY {
  63. LIST_ENTRY SiblingEntry;
  64. LIST_ENTRY Children;
  65. PSTACK_DATA_ENTRY Parent;
  66. ULONGLONG Address;
  67. PSTR AddressSymbol;
  68. ULONG Count;
  69. HANDLE UiHandle;
  70. };
  71. /*++
  72. Structure Description:
  73. This structure defines memory pool data use for profiler tracing.
  74. Members:
  75. ListEntry - Stores pointers to the next and previous memory pool entries.
  76. MemoryPool - Stores information on this memory pool.
  77. TagStatistics - Stores an array of pool tag information.
  78. --*/
  79. typedef struct _MEMORY_POOL_ENTRY {
  80. LIST_ENTRY ListEntry;
  81. PROFILER_MEMORY_POOL MemoryPool;
  82. PROFILER_MEMORY_POOL_TAG_STATISTIC *TagStatistics;
  83. } MEMORY_POOL_ENTRY, *PMEMORY_POOL_ENTRY;
  84. //
  85. // -------------------------------------------------------------------- Globals
  86. //
  87. //
  88. // -------------------------------------------------------- Function Prototypes
  89. //