Debugger.h 3.1 KB

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