Support for single-stepping by line.

Plus various other test fixes.

Change-Id: I2ef923e56a16a14380eda150685b5e3db944616e
diff --git a/src/utils.cc b/src/utils.cc
index 5348558..ce3af32 100644
--- a/src/utils.cc
+++ b/src/utils.cc
@@ -375,18 +375,22 @@
 }
 
 std::string DescriptorToDot(const char* descriptor) {
-  std::string result(DescriptorToName(descriptor));
-  std::replace(result.begin(), result.end(), '/', '.');
-  return result;
+  size_t length = strlen(descriptor);
+  if (descriptor[0] == 'L' && descriptor[length - 1] == ';') {
+    std::string result(descriptor + 1, length - 2);
+    std::replace(result.begin(), result.end(), '/', '.');
+    return result;
+  }
+  return descriptor;
 }
 
 std::string DescriptorToName(const char* descriptor) {
   size_t length = strlen(descriptor);
-  CHECK_GT(length, 0U) << descriptor;
-  CHECK_EQ(descriptor[0], 'L') << descriptor;
-  CHECK_EQ(descriptor[length - 1], ';') << descriptor;
-  std::string result(descriptor + 1, length - 2);
-  return result;
+  if (descriptor[0] == 'L' && descriptor[length - 1] == ';') {
+    std::string result(descriptor + 1, length - 2);
+    return result;
+  }
+  return descriptor;
 }
 
 std::string JniShortName(const Method* m) {