RFR: 8029630: Print thread id hex representation in error messages. (original) (raw)

Max Ockner max.ockner at oracle.com
Fri Apr 3 15:55:59 UTC 2015


Thomas, Thanks for pointing out the flaw in thread.cpp. I will fix that. I originally looked for an abstraction but couldn't find one. If you think it would be better to create a new format specifier, then I will do that as well. Max On 4/3/2015 5:42 AM, Thomas Stüfe wrote:

Hi Max,

Disclaimer: not a Reviewer. In thread.cpp, the code prints the value of Thread* pointer, not a thread id. So the code was correct before. That said, I find this pretty confusing, especially because it prints "tid=". Maybe one should change this or throw it away. -- As for vmError.cpp: this seems to be correct. However, I would like to see this abstracted somehow, here is why: The OpenJDK simply assumes thread id to be 32bit unsigned. This is not really portable and may bite us in the face (I am not sure if it already did, was not thread id 64bit on AIX? at least for kernel thread ids?). If you use pthreadt to implement thread id, like many ports do, thread id may be anything - 64bit number, array, struct. POSIX leaves that open. So, instead of a raw "%x", I propose as quick fix a format specifier for thread ids, e.g. "THREADIDFORMAT". That way we could at least easily find all places where we print thread ids, if we later decide to change the type for thread ids. Regards, Thomas

On Thu, Apr 2, 2015 at 9:38 PM, Max Ockner <max.ockner at oracle.com_ _<mailto:max.ockner at oracle.com>> wrote: Hello, Please review this change: Bug: https://bugs.openjdk.java.net/browse/JDK-8029630 Webrev: http://cr.openjdk.java.net/~mockner/8029630.2/ <http://cr.openjdk.java.net/%7Emockner/8029630.2/> Summary: Existing error messages for vm crashes print the decimal representation of the current thread id. The message format has been changed to print the hex value of the thread id. Tested with jtreg runtime to make sure nothing was broken. I tested the new functionality separately. I crashed the vm and examined the debugger output to make sure the hexadecimal thread id printed in the error message matched one of the threads listed by the debugger. Thanks, Max



More information about the hotspot-dev mailing list