Skip to content

Commit

Permalink
src,etw: fix event 9 on 64 bit Windows
Browse files Browse the repository at this point in the history
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: #15563
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Hitesh Kanwathirtha <hiteshk@microsoft.com>
  • Loading branch information
joaocgreis authored and MylesBorins committed Oct 3, 2017
1 parent 22b2d1a commit a43f681
Showing 1 changed file with 2 additions and 8 deletions.
10 changes: 2 additions & 8 deletions src/node_win32_etw_provider-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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); \
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit a43f681

Please sign in to comment.