ClassLinker changes

- Add ClassLinker::LockOwner for SignalCatcher
- ClassLinker::ResolveMethod now sets CodeAndDirectMethod when code is available

Change-Id: I404b80d1994808e018d00e0b30e8ba4f9d08fecc
diff --git a/src/signal_catcher.cc b/src/signal_catcher.cc
index 06491e4..22d08b5 100644
--- a/src/signal_catcher.cc
+++ b/src/signal_catcher.cc
@@ -22,6 +22,7 @@
 #include <sys/time.h>
 #include <unistd.h>
 
+#include "class_linker.h"
 #include "heap.h"
 #include "runtime.h"
 #include "thread.h"
@@ -64,9 +65,11 @@
 void SignalCatcher::HandleSigQuit() {
   Runtime* runtime = Runtime::Current();
   ThreadList* thread_list = runtime->GetThreadList();
+  ClassLinker* class_linker = runtime->GetClassLinker();
 
-  LOG(INFO) << "Heap lock owner: " << Heap::GetLockOwner() << "\n"
-            << "Thread lock owner: " << thread_list->GetLockOwner() << "\n";
+  LOG(INFO) << "Heap lock owner tid: " << Heap::GetLockOwner() << "\n"
+            << "ThreadList lock owner tid: " << thread_list->GetLockOwner() << "\n"
+            << "ClassLinker lock owner tid: " << class_linker->GetLockOwner() << "\n";
 
   thread_list->SuspendAll();