From d032e097cac47bc0f6e6cf0df86b778e0ae16f94 Mon Sep 17 00:00:00 2001 From: zheng siyao Date: Wed, 9 May 2012 19:55:56 +0800 Subject: DTrace bug in message-send dtrace doesn't print sender pid and receiver pid in message related probe correctly, it truncates pid string to 7 characters on 64bit platform(or 3 characters on 32bit platform). The dtrace related code did not set the string length correctly, it sets the string length to the length of a pointer rather than the buffer length. --- erts/emulator/beam/erl_message.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'erts/emulator/beam/erl_message.c') diff --git a/erts/emulator/beam/erl_message.c b/erts/emulator/beam/erl_message.c index bd86e3ea9e..cb3db6a564 100644 --- a/erts/emulator/beam/erl_message.c +++ b/erts/emulator/beam/erl_message.c @@ -905,8 +905,8 @@ erts_send_message(Process* sender, #ifdef USE_VM_PROBES *sender_name = *receiver_name = '\0'; if (DTRACE_ENABLED(message_send)) { - erts_snprintf(sender_name, sizeof(sender_name), "%T", sender->id); - erts_snprintf(receiver_name, sizeof(receiver_name), "%T", receiver->id); + erts_snprintf(sender_name, sizeof(DTRACE_CHARBUF_NAME(sender_name)), "%T", sender->id); + erts_snprintf(receiver_name, sizeof(DTRACE_CHARBUF_NAME(receiver_name)), "%T", receiver->id); } #endif if (SEQ_TRACE_TOKEN(sender) != NIL && !(flags & ERTS_SND_FLG_NO_SEQ_TRACE)) { -- cgit v1.2.3