2 * dis.c: Sample disassembler
5 * Miguel de Icaza (miguel@ximian.com)
7 * (C) 2001 Ximian, Inc.
12 #include <mono/metadata/assembly.h>
13 #include <mono/metadata/cil-coff.h>
17 /* True if you want to get a dump of the header data */
18 gboolean dump_header_data_p = FALSE;
21 dump_header_data (MonoAssembly *ass)
23 if (!dump_header_data_p)
27 "// Ximian's CIL disassembler, version 1.0\n"
28 "// Copyright (C) 2001 Ximian, Inc.\n\n");
32 disassemble_file (const char *file)
34 enum MonoAssemblyOpenStatus status;
37 ass = mono_assembly_open (file, &status);
39 fprintf (stderr, "Error while trying to process %s\n", file);
43 dump_header_data (ass);
45 mono_assembly_close (ass);
51 fprintf (stderr, "Usage is: monodis file1 ..\n");
56 main (int argc, char *argv [])
58 GList *input_files = NULL, *l;
62 for (i = 1; i < argc; i++){
63 if (argv [i][0] == '-'){
64 if (argv [i][1] == 'h')
66 else if (argv [i][1] == 'd')
67 dump_header_data_p = TRUE;
69 input_files = g_list_append (input_files, argv [i]);
72 if (input_files == NULL)
75 for (l = input_files; l; l = l->next)
76 disassemble_file (l->data);