@@ -690,7 +690,11 @@ class CrstBase;
690690class BulkTypeEventLogger ;
691691class TypeHandle ;
692692class Thread ;
693-
693+ template <typename ELEMENT, typename TRAITS>
694+ class SetSHash ;
695+ template <typename ELEMENT>
696+ class PtrSetSHashTraits ;
697+ typedef SetSHash<MethodDesc*, PtrSetSHashTraits<MethodDesc*>> MethodDescSet;
694698
695699// All ETW helpers must be a part of this namespace
696700// We have auto-generated macros to directly fire the events
@@ -903,8 +907,8 @@ namespace ETW
903907 static VOID SendEventsForNgenMethods (Module *pModule, DWORD dwEventOptions);
904908 static VOID SendMethodJitStartEvent (MethodDesc *pMethodDesc, SString *namespaceOrClassName=NULL , SString *methodName=NULL , SString *methodSignature=NULL );
905909 static VOID SendMethodILToNativeMapEvent (MethodDesc * pMethodDesc, DWORD dwEventOptions, PCODE pNativeCodeStartAddress, DWORD nativeCodeId, ReJITID ilCodeId);
906- static VOID SendMethodRichDebugInfo (MethodDesc * pMethodDesc, PCODE pNativeCodeStartAddress, DWORD nativeCodeId, ReJITID ilCodeId);
907- static VOID SendMethodEvent (MethodDesc *pMethodDesc, DWORD dwEventOptions, BOOL bIsJit, SString *namespaceOrClassName=NULL , SString *methodName=NULL , SString *methodSignature=NULL , PCODE pNativeCodeStartAddress = 0 , PrepareCodeConfig *pConfig = NULL );
910+ static VOID SendMethodRichDebugInfo (MethodDesc * pMethodDesc, PCODE pNativeCodeStartAddress, DWORD nativeCodeId, ReJITID ilCodeId, MethodDescSet* sentMethodDetailsSet );
911+ static VOID SendMethodEvent (MethodDesc *pMethodDesc, DWORD dwEventOptions, BOOL bIsJit, SString *namespaceOrClassName=NULL , SString *methodName=NULL , SString *methodSignature=NULL , PCODE pNativeCodeStartAddress = 0 , PrepareCodeConfig *pConfig = NULL , MethodDescSet* sentMethodDetailsSet = NULL );
908912 static VOID SendHelperEvent (ULONGLONG ullHelperStartAddress, ULONG ulHelperSize, LPCWSTR pHelperName);
909913 public:
910914 typedef union _MethodStructs
@@ -937,6 +941,7 @@ namespace ETW
937941 static VOID MethodJitting (MethodDesc *pMethodDesc, SString *namespaceOrClassName, SString *methodName, SString *methodSignature);
938942 static VOID MethodJitted (MethodDesc *pMethodDesc, SString *namespaceOrClassName, SString *methodName, SString *methodSignature, PCODE pNativeCodeStartAddress, PrepareCodeConfig *pConfig);
939943 static VOID SendMethodDetailsEvent (MethodDesc *pMethodDesc);
944+ static VOID SendNonDuplicateMethodDetailsEvent (MethodDesc* pMethodDesc, MethodDescSet* set);
940945 static VOID StubInitialized (ULONGLONG ullHelperStartAddress, LPCWSTR pHelperName);
941946 static VOID StubsInitialized (PVOID *pHelperStartAddress, PVOID *pHelperNames, LONG ulNoOfHelpers);
942947 static VOID MethodRestored (MethodDesc * pMethodDesc);
0 commit comments