Debugger.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #ifndef RUNTIME_PLATFORM_AGNOSTIC_DEBUGGER
  6. #define RUNTIME_PLATFORM_AGNOSTIC_DEBUGGER
  7. #ifndef _WIN32
  8. #define ACTIVPROF_E_PROFILER_PRESENT 0x0200
  9. #define ACTIVPROF_E_PROFILER_ABSENT 0x0201
  10. #define ACTIVPROF_E_UNABLE_TO_APPLY_ACTION 0x0202
  11. #define PROFILER_TOKEN uint
  12. typedef enum {
  13. PROFILER_SCRIPT_TYPE_USER,
  14. PROFILER_SCRIPT_TYPE_DYNAMIC,
  15. PROFILER_SCRIPT_TYPE_NATIVE,
  16. PROFILER_SCRIPT_TYPE_DOM
  17. } PROFILER_SCRIPT_TYPE;
  18. typedef enum {
  19. PROFILER_EVENT_MASK_TRACE_SCRIPT_FUNCTION_CALL = 0x00000001,
  20. PROFILER_EVENT_MASK_TRACE_NATIVE_FUNCTION_CALL = 0x00000002,
  21. PROFILER_EVENT_MASK_TRACE_DOM_FUNCTION_CALL = 0x00000004,
  22. PROFILER_EVENT_MASK_TRACE_ALL =
  23. PROFILER_EVENT_MASK_TRACE_SCRIPT_FUNCTION_CALL |
  24. PROFILER_EVENT_MASK_TRACE_NATIVE_FUNCTION_CALL,
  25. PROFILER_EVENT_MASK_TRACE_ALL_WITH_DOM = PROFILER_EVENT_MASK_TRACE_ALL |
  26. PROFILER_EVENT_MASK_TRACE_DOM_FUNCTION_CALL
  27. } PROFILER_EVENT_MASK;
  28. interface IEnumDebugCodeContexts : IUnknown
  29. {
  30. // HRESULT Next( ..
  31. // HRESULT Skip( ..
  32. // HRESULT Reset();
  33. // HRESULT Clone( ..
  34. };
  35. interface IDebugDocumentInfo : IUnknown
  36. {
  37. HRESULT GetName(char* dn, BSTR *name);
  38. HRESULT GetDocumentClassId(CLSID *dclsid);
  39. };
  40. interface IDebugDocument : IDebugDocumentInfo
  41. {
  42. };
  43. interface IDebugDocumentContext : IUnknown
  44. {
  45. HRESULT GetDocument(IDebugDocument **doc);
  46. HRESULT EnumCodeContexts(IEnumDebugCodeContexts **dctx);
  47. };
  48. class IActiveScriptProfilerCallback
  49. {
  50. public:
  51. HRESULT Initialize(DWORD ctx)
  52. {
  53. return S_OK;
  54. }
  55. HRESULT Shutdown(HRESULT _)
  56. {
  57. return S_OK;
  58. }
  59. HRESULT Release()
  60. {
  61. return S_OK;
  62. }
  63. HRESULT QueryInterface(IActiveScriptProfilerCallback **_)
  64. {
  65. return S_OK;
  66. }
  67. HRESULT ScriptCompiled(PROFILER_TOKEN scriptId, PROFILER_SCRIPT_TYPE type, IUnknown *ctx)
  68. {
  69. return S_OK;
  70. }
  71. HRESULT FunctionCompiled(PROFILER_TOKEN functionId, PROFILER_TOKEN scriptId,
  72. const WCHAR* pwszFunctionName, const WCHAR* pwszFunctionNameHint, IUnknown *ctx)
  73. {
  74. return S_OK;
  75. }
  76. HRESULT OnFunctionEnter(PROFILER_TOKEN scriptId, PROFILER_TOKEN functionId)
  77. {
  78. return S_OK;
  79. }
  80. HRESULT OnFunctionExit(PROFILER_TOKEN scriptId, PROFILER_TOKEN functionId)
  81. {
  82. return S_OK;
  83. }
  84. // IActiveScriptProfilerCallback2
  85. HRESULT OnFunctionEnterByName(const WCHAR *functionName, PROFILER_SCRIPT_TYPE _)
  86. {
  87. return S_OK;
  88. }
  89. HRESULT OnFunctionExitByName(const WCHAR *functionName, PROFILER_SCRIPT_TYPE _)
  90. {
  91. return S_OK;
  92. }
  93. // IActiveScriptProfilerCallback3
  94. HRESULT AddRef()
  95. {
  96. return S_OK;
  97. }
  98. HRESULT SetWebWorkerId(PROFILER_TOKEN _)
  99. {
  100. return S_OK;
  101. }
  102. };
  103. #define IActiveScriptProfilerCallback2 IActiveScriptProfilerCallback
  104. #define IActiveScriptProfilerCallback3 IActiveScriptProfilerCallback
  105. #endif // !_WIN32
  106. #endif // RUNTIME_PLATFORM_AGNOSTIC_DEBUGGER