Browse Source

src,etw: fix event 9 on 64 bit Windows

The event manifest specifies the MethodID field as a 32 bit integer.
The 32 bit node executable publishes this correctly, but the 64 bit
executable published a 64 bit integer, making the event undecodable.

PR-URL: https://github.com/nodejs/node/pull/15563
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Hitesh Kanwathirtha <hiteshk@microsoft.com>
canary-base
João Reis 7 years ago
parent
commit
510cab7a3d
  1. 10
      src/node_win32_etw_provider-inl.h

10
src/node_win32_etw_provider-inl.h

@ -27,12 +27,6 @@
#include "node_win32_etw_provider.h"
#include "node_etw_provider.h"
#if defined(_WIN64)
# define ETW_WRITE_INTPTR_DATA ETW_WRITE_INT64_DATA
#else
# define ETW_WRITE_INTPTR_DATA ETW_WRITE_INT32_DATA
#endif
namespace node {
// From node_win32_etw_provider.cc
@ -100,7 +94,7 @@ extern int events_enabled;
ETW_WRITE_ADDRESS_DATA(descriptors, &context); \
ETW_WRITE_ADDRESS_DATA(descriptors + 1, &startAddr); \
ETW_WRITE_INT64_DATA(descriptors + 2, &size); \
ETW_WRITE_INTPTR_DATA(descriptors + 3, &id); \
ETW_WRITE_INT32_DATA(descriptors + 3, &id); \
ETW_WRITE_INT16_DATA(descriptors + 4, &flags); \
ETW_WRITE_INT16_DATA(descriptors + 5, &rangeId); \
ETW_WRITE_INT64_DATA(descriptors + 6, &sourceId); \
@ -253,7 +247,7 @@ void NODE_V8SYMBOL_ADD(LPCSTR symbol,
}
void* context = nullptr;
INT64 size = (INT64)len;
INT_PTR id = (INT_PTR)addr1;
INT32 id = (INT32)addr1;
INT16 flags = 0;
INT16 rangeid = 1;
INT32 col = 1;

Loading…
Cancel
Save