From 731f7b80557bdcee11e58d4fdc2f8a909c880b8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Reis?= Date: Wed, 16 Mar 2016 16:31:18 +0000 Subject: [PATCH] etw: fix descriptors of events 9 and 23 Event 9 must include the string terminator in the last descriptor. Event 23 must be published with no descriptors, in accordance with the manifest. PR-URL: https://github.com/nodejs/node/pull/5742 Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell --- src/node_win32_etw_provider-inl.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/node_win32_etw_provider-inl.h b/src/node_win32_etw_provider-inl.h index de53203cb3c15f..3fef20cc1488c1 100644 --- a/src/node_win32_etw_provider-inl.h +++ b/src/node_win32_etw_provider-inl.h @@ -94,6 +94,13 @@ extern int events_enabled; dataDescriptors); \ CHECK_EQ(status, ERROR_SUCCESS); +#define ETW_WRITE_EMPTY_EVENT(eventDescriptor) \ + DWORD status = event_write(node_provider, \ + &eventDescriptor, \ + 0, \ + NULL); \ + CHECK_EQ(status, ERROR_SUCCESS); + void NODE_HTTP_SERVER_REQUEST(node_dtrace_http_server_request_t* req, node_dtrace_connection_t* conn, const char *remote, int port, @@ -189,10 +196,7 @@ void NODE_V8SYMBOL_MOVE(const void* addr1, const void* addr2) { void NODE_V8SYMBOL_RESET() { if (events_enabled > 0) { - int val = 0; - EVENT_DATA_DESCRIPTOR descriptors[1]; - ETW_WRITE_INT32_DATA(descriptors, &val); - ETW_WRITE_EVENT(NODE_V8SYMBOL_RESET_EVENT, descriptors); + ETW_WRITE_EMPTY_EVENT(NODE_V8SYMBOL_RESET_EVENT); } } @@ -244,7 +248,7 @@ void NODE_V8SYMBOL_ADD(LPCSTR symbol, line, col, symbuf, - symbol_len * sizeof(symbuf[0])); + (symbol_len + 1) * sizeof(symbuf[0])); ETW_WRITE_EVENT(MethodLoad, descriptors); } }