diff options
author | Gonzalo Paniagua Javier <gonzalo.mono@gmail.com> | 2004-09-05 09:58:52 +0400 |
---|---|---|
committer | Gonzalo Paniagua Javier <gonzalo.mono@gmail.com> | 2004-09-05 09:58:52 +0400 |
commit | e51d417f2f645da5486fa9b8c87149b007b6d90d (patch) | |
tree | fd39dc782fcf6b4a6268daf9fae71dab46dc8fcb | |
parent | 05fb52cb294dd7d6cf422e6e1ffebd017448775d (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/ChangeLog | 4 | ||||
-rw-r--r-- | mono/metadata/assembly.c | 14 |
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; } } |