DebugManager.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #pragma once
  2. #include "DebugCommon.h"
  3. #include "BeefySysLib/util/PerfTimer.h"
  4. #include "BeefySysLib/util/CritSect.h"
  5. #include "BeefySysLib/util/Dictionary.h"
  6. #include "Debugger.h"
  7. #include <queue>
  8. NS_BF_BEGIN
  9. class Debugger;
  10. class DebugVisualizers;
  11. class DbgMiniDump;
  12. class NetManager;
  13. class DbgSymSrvOptions
  14. {
  15. public:
  16. String mCacheDir;
  17. String mSourceServerCacheDir;
  18. Array<String> mSymbolServers;
  19. BfSymSrvFlags mFlags;
  20. DbgSymSrvOptions()
  21. {
  22. mFlags = BfSymSrvFlag_None;
  23. }
  24. };
  25. enum BfStepFilterKind
  26. {
  27. BfStepFilterKind_Default = 0,
  28. BfStepFilterKind_Filtered = 1,
  29. BfStepFilterKind_NotFiltered = 2
  30. };
  31. class StepFilter
  32. {
  33. public:
  34. BfStepFilterKind mFilterKind;
  35. public:
  36. StepFilter()
  37. {
  38. // Set global / local
  39. mFilterKind = BfStepFilterKind_Filtered;
  40. }
  41. bool IsFiltered(bool defaultValue)
  42. {
  43. switch (mFilterKind)
  44. {
  45. case BfStepFilterKind_Default:
  46. return defaultValue;
  47. case BfStepFilterKind_Filtered:
  48. return true;
  49. default:
  50. return false;
  51. }
  52. }
  53. };
  54. class DebugManager
  55. {
  56. public:
  57. Debugger* mDebugger32;
  58. Debugger* mDebugger64;
  59. CritSect mCritSect;
  60. Dictionary<String, StepFilter> mStepFilters;
  61. int mStepFilterVersion;
  62. std::deque<String> mOutMessages;
  63. DebugVisualizers* mDebugVisualizers;
  64. DwDisplayInfo mDefaultDisplayInfo;
  65. Dictionary<String, DwDisplayInfo> mDisplayInfos;
  66. Dictionary<String, String> mSourcePathRemap;
  67. bool mStepOverExternalFiles;
  68. NetManager* mNetManager;
  69. DbgSymSrvOptions mSymSrvOptions;
  70. public:
  71. DebugManager();
  72. ~DebugManager();
  73. void OutputMessage(const StringImpl& msg);
  74. void OutputRawMessage(const StringImpl& msg);
  75. void SetSourceServerCacheDir();
  76. };
  77. extern DebugManager* gDebugManager;
  78. extern Debugger* gDebugger;
  79. extern PerfManager* gDbgPerfManager;
  80. Debugger* CreateDebugger32(DebugManager* debugManager, DbgMiniDump* miniDump);
  81. Debugger* CreateDebugger64(DebugManager* debugManager, DbgMiniDump* miniDump);
  82. NS_BF_END