Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>2004-09-05 09:58:52 +0400
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>2004-09-05 09:58:52 +0400
commite51d417f2f645da5486fa9b8c87149b007b6d90d (patch)
treefd39dc782fcf6b4a6268daf9fae71dab46dc8fcb
parent05fb52cb294dd7d6cf422e6e1ffebd017448775d (diff)
2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* assembly.c: provide more information when loading an assembly fails. svn path=/branches/mono-1-0/mono/; revision=33362
-rw-r--r--mono/metadata/ChangeLog4
-rw-r--r--mono/metadata/assembly.c14
2 files changed, 16 insertions, 2 deletions
diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog
index 88fb415f265..588d20d06fb 100644
--- a/mono/metadata/ChangeLog
+++ b/mono/metadata/ChangeLog
@@ -1,3 +1,7 @@
+2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * assembly.c: provide more information when loading an assembly fails.
+
2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* filewatcher.c: don't expect the development fam package to be
diff --git a/mono/metadata/assembly.c b/mono/metadata/assembly.c
index 2ae0d0eef7b..a0ec7467f38 100644
--- a/mono/metadata/assembly.c
+++ b/mono/metadata/assembly.c
@@ -388,6 +388,15 @@ mono_assembly_load_references (MonoImage *image, MonoImageOpenStatus *status)
image->name, aname.name);
} else {
+ char *extra_msg = g_strdup ("");
+
+ if (*status == MONO_IMAGE_ERROR_ERRNO) {
+ extra_msg = g_strdup_printf ("System error: %s\n", strerror (errno));
+ } else if (*status == MONO_IMAGE_MISSING_ASSEMBLYREF) {
+ extra_msg = g_strdup ("Cannot find an assembly referenced from this one.\n");
+ } else if (*status == MONO_IMAGE_IMAGE_INVALID) {
+ extra_msg = g_strdup ("The file exists but is not a valid assembly.\n");
+ }
for (j = 0; j < i; j++)
mono_assembly_close (references [j]);
@@ -396,11 +405,12 @@ mono_assembly_load_references (MonoImage *image, MonoImageOpenStatus *status)
g_warning ("Could not find assembly %s, references from %s (assemblyref_index=%d)\n"
" Major/Minor: %d,%d\n"
" Build: %d,%d\n"
- " Token: %s\n",
+ " Token: %s\n%s",
aname.name, image->name, i,
aname.major, aname.minor, aname.build, aname.revision,
- aname.public_key_token);
+ aname.public_key_token, extra_msg);
*status = MONO_IMAGE_MISSING_ASSEMBLYREF;
+ g_free (extra_msg);
return;
}
}