[crashpad] improve error message for invalid config schema

TESTED=`fx run-test crashpad_analyzer_tests --test=config_unittest`

Change-Id: I6b5990a8c787088673483e897379cde91d035491
diff --git a/bin/crashpad/config.cc b/bin/crashpad/config.cc
index 6f3546e..6939a9e 100644
--- a/bin/crashpad/config.cc
+++ b/bin/crashpad/config.cc
@@ -36,12 +36,17 @@
 const char kLocalCrashpadDatabasePathKey[] = "local_crashpad_database_path";
 const char kEnableUploadToCrashServerKey[] = "enable_upload_to_crash_server";
 
-bool CheckSchema(rapidjson::Document& doc) {
+bool CheckAgainstSchema(rapidjson::Document& doc) {
+  // Check that the schema is actually valid.
   rapidjson::Document sd;
-  if (sd.Parse(kSchema).HasParseError()) {
-    FX_LOGS(ERROR) << "invalid JSON schema for config";
+  rapidjson::ParseResult ok = sd.Parse(kSchema);
+  if (!ok) {
+    FX_LOGS(ERROR) << "invalid JSON schema for config at offset " << ok.Offset()
+                   << " " << rapidjson::GetParseError_En(ok.Code());
     return false;
   }
+
+  // Check the document against the schema.
   rapidjson::SchemaDocument schema(sd);
   rapidjson::SchemaValidator validator(schema);
   if (!doc.Accept(validator)) {
@@ -66,13 +71,12 @@
   rapidjson::Document doc;
   rapidjson::ParseResult ok = doc.Parse(json.c_str());
   if (!ok) {
-    FX_LOGS(ERROR) << "error parsing config as JSON: "
-                   << rapidjson::GetParseError_En(ok.Code()) << "("
-                   << ok.Offset() << ")";
+    FX_LOGS(ERROR) << "error parsing config as JSON at offset " << ok.Offset()
+                   << " " << rapidjson::GetParseError_En(ok.Code());
     return ZX_ERR_INTERNAL;
   }
 
-  if (!CheckSchema(doc)) {
+  if (!CheckAgainstSchema(doc)) {
     return ZX_ERR_INTERNAL;
   }