tree a82b6c09bdc3819fc2da571a631401b5973888f2
parent 4047efcc2fd4147a044a799400851a3bc470b738
author Elliott Hughes <enh@google.com> 1334620903 -0700
committer Elliott Hughes <enh@google.com> 1334620903 -0700

Make failures caused by unimplemented entry points much clearer.

Before:

  F 32344 32344 runtime_linux.cc:183] *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
  F 32344 32344 runtime_linux.cc:183] Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) fault addr (nil)
  F 32344 32344 libartd.so:-1] 	#00 ??+0x3adc15 [0x5592ac15]
  F 32344 32344 libartd.so:-1] 	#01 ??+0x3ae5b9 [0x5592b5b9]
  F 32344 32344 ??:-1] 	#02 [0x55573410]
  F 32344 32344 libartd.so:-1] 	#03 ??+0x24cb86 [0x557c9b86]
  F 32344 32344 libartd.so:-1] 	#04 ??+0x24d0c3 [0x557ca0c3]
  F 32344 32344 libartd.so:-1] 	#05 art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0x48 [0x557d76e8]
  F 32344 32344 libartd.so:-1] 	#06 art::CheckJNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0xce [0x556e5cee]
  F 32344 32344 oatexecd:-1] 	#07 _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+0x29 [0x8085739]
  F 32344 32344 oatexecd:-1] 	#08 ?? [0x8073c35]
  F 32344 32344 oatexecd:-1] 	#09 ?? [0x8073fd7]
  F 32344 32344 libc.so.6:-1] 	#10 __libc_start_main()+0xe6 [0x55afcbd6]
  F 32344 32344 oatexecd:-1] 	#11 ?? [0x8071fc1]

After:

  F  5527  5527 thread.cc:81] void art::UnimplementedEntryPoint() unimplemented
  F  5527  5527 runtime.cc:160] Runtime aborting...
  F  5527  5527 runtime.cc:160] "main" prio=5 tid=1 Runnable
  F  5527  5527 runtime.cc:160]   | group="main" sCount=0 dsCount=0 obj=0x6121e928 self=0x8c0c618
  F  5527  5527 runtime.cc:160]   | sysTid=5527 nice=0 sched=0/0 cgrp=default handle=1439185696
  F  5527  5527 runtime.cc:160]   | schedstat=( 66360090 54151 15 ) utm=6 stm=0 core=20 HZ=100
  F  5527  5527 runtime.cc:160]   at java.lang.Math.ceil(Native method)
  F  5527  5527 runtime.cc:160]   at java.lang.RealToString.longDigitGenerator(RealToString.java:269)
  F  5527  5527 runtime.cc:160]   at java.lang.RealToString.convertDouble(RealToString.java:111)
  F  5527  5527 runtime.cc:160]   at java.lang.RealToString.doubleToString(RealToString.java:59)
  F  5527  5527 runtime.cc:160]   at java.lang.Double.toString(Double.java:317)
  F  5527  5527 runtime.cc:160]   at java.lang.String.valueOf(String.java:1676)
  F  5527  5527 runtime.cc:160]   at java.io.PrintStream.println(PrintStream.java:479)
  F  5527  5527 runtime.cc:160]   at ReflectionTest.testFieldReflection(ReflectionTest.java:40)
  F  5527  5527 runtime.cc:160]   at ReflectionTest.main(ReflectionTest.java:269)
  F  5527  5527 runtime.cc:160]
  F  5527  5527 libartd.so:-1] 	#00 ??+0x3adcb5 [0x5592acb5]
  F  5527  5527 libartd.so:-1] 	#01 art::Runtime::Abort(char const*, int)+0x99 [0x558a1439]
  F  5527  5527 libartd.so:-1] 	#02 art::LogMessage::~LogMessage()+0x3d0 [0x557dc060]
  F  5527  5527 libartd.so:-1] 	#03 ??+0x33f644 [0x558bc644]
  F  5527  5527 ??:-1] 	#04 [0x60735b9a]
  F  5527  5527 libartd.so:-1] 	#05 ??+0x24cb86 [0x557c9b86]
  F  5527  5527 libartd.so:-1] 	#06 ??+0x24d0c3 [0x557ca0c3]
  F  5527  5527 libartd.so:-1] 	#07 art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0x48 [0x557d76e8]
  F  5527  5527 libartd.so:-1] 	#08 art::CheckJNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0xce [0x556e5cee]
  F  5527  5527 oatexecd:-1] 	#09 _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+0x29 [0x8085739]
  F  5527  5527 oatexecd:-1] 	#10 ?? [0x8073c35]
  F  5527  5527 oatexecd:-1] 	#11 ?? [0x8073fd7]
  F  5527  5527 libc.so.6:-1] 	#12 __libc_start_main()+0xe6 [0x55afcbd6]
  F  5527  5527 oatexecd:-1] 	#13 ?? [0x8071fc1]

Change-Id: Id55f10f910ace94de3c985fabfd9a0fe15c3c8bf
