bfd:
[deliverable/binutils-gdb.git] / gprof / gprof.c
index 381118c9d05f4c7c3ffeeb1882a969240ab2181d..98406e67d3c31930c056b2c4c2060b3233b43565 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "libiberty.h"
 #include "gprof.h"
+#include "bfdver.h"
 #include "search_list.h"
 #include "source.h"
 #include "symtab.h"
@@ -44,8 +45,7 @@
 #include "demangle.h"
 #include "getopt.h"
 
-static void usage PARAMS ((FILE *, int)) ATTRIBUTE_NORETURN;
-int main PARAMS ((int, char **));
+static void usage (FILE *, int) ATTRIBUTE_NORETURN;
 
 const char *whoami;
 const char *function_mapping_file;
@@ -78,8 +78,6 @@ char copyright[] =
 
 static char *gmon_name = GMONNAME;     /* profile filename */
 
-bfd *abfd;
-
 /*
  * Functions that get excluded by default:
  */
@@ -156,9 +154,7 @@ static struct option long_options[] =
 
 
 static void
-usage (stream, status)
-     FILE *stream;
-     int status;
+usage (FILE *stream, int status)
 {
   fprintf (stream, _("\
 Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n\
@@ -172,19 +168,17 @@ Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n\
        [--no-static] [--print-path] [--separate-files]\n\
        [--static-call-graph] [--sum] [--table-length=len] [--traditional]\n\
        [--version] [--width=n] [--ignore-non-functions]\n\
-       [--demangle[=STYLE]] [--no-demangle]\n\
+       [--demangle[=STYLE]] [--no-demangle] [@FILE]\n\
        [image-file] [profile-file...]\n"),
           whoami);
-  if (status == 0)
+  if (REPORT_BUGS_TO[0] && status == 0)
     fprintf (stream, _("Report bugs to %s\n"), REPORT_BUGS_TO);
   done (status);
 }
 
 
 int
-main (argc, argv)
-     int argc;
-     char **argv;
+main (int argc, char **argv)
 {
   char **sp, *str;
   Sym **cg = 0;
@@ -196,14 +190,18 @@ main (argc, argv)
 #if defined (HAVE_SETLOCALE)
   setlocale (LC_CTYPE, "");
 #endif
+#ifdef ENABLE_NLS
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
+#endif
 
   whoami = argv[0];
   xmalloc_set_program_name (whoami);
 
+  expandargv (&argc, &argv);
+
   while ((ch = getopt_long (argc, argv,
-       "aA::bBcCd::De:E:f:F:hiI:J::k:lLm:n::N::O:p::P::q::Q::st:Tvw:xyzZ::",
+       "aA::bBcC::d::De:E:f:F:hiI:J::k:lLm:n:N:O:p::P::q::Q::rR:st:Tvw:xyzZ::",
                            long_options, 0))
         != EOF)
     {
@@ -414,7 +412,7 @@ main (argc, argv)
          break;
        case 'v':
          /* This output is intended to follow the GNU standards document.  */
-         printf (_("GNU gprof %s\n"), VERSION);
+         printf (_("GNU gprof %s\n"), BFD_VERSION_STRING);
          printf (_("Based on BSD gprof, copyright 1983 Regents of the University of California.\n"));
          printf (_("\
 This program is free software.  This program has absolutely no warranty.\n"));
@@ -486,29 +484,20 @@ This program is free software.  This program has absolutely no warranty.\n"));
   /* --sum implies --line, otherwise we'd lose basic block counts in
        gmon.sum */
   if (output_style & STYLE_SUMMARY_FILE)
-    {
-      line_granularity = 1;
-    }
+    line_granularity = 1;
 
   /* append value of GPROF_PATH to source search list if set: */
   str = (char *) getenv ("GPROF_PATH");
   if (str)
-    {
-      search_list_append (&src_search_list, str);
-    }
+    search_list_append (&src_search_list, str);
 
   if (optind < argc)
-    {
-      a_out_name = argv[optind++];
-    }
+    a_out_name = argv[optind++];
+
   if (optind < argc)
-    {
-      gmon_name = argv[optind++];
-    }
+    gmon_name = argv[optind++];
 
-  /*
-   * Turn off default functions:
-   */
+  /* Turn off default functions.  */
   for (sp = &default_excluded_list[0]; *sp; sp++)
     {
       sym_id_add (*sp, EXCL_TIME);
@@ -516,14 +505,6 @@ This program is free software.  This program has absolutely no warranty.\n"));
       sym_id_add (*sp, EXCL_FLAT);
     }
 
-  /*
-   * For line-by-line profiling, also want to keep those
-   * functions off the flat profile:
-   */
-  if (line_granularity)
-    for (sp = &default_excluded_list[0]; *sp; sp++)
-      sym_id_add (*sp, EXCL_FLAT);
-
   /* Read symbol table from core file.  */
   core_init (a_out_name);
 
@@ -555,21 +536,22 @@ This program is free software.  This program has absolutely no warranty.\n"));
        {
          gmon_out_read (gmon_name);
          if (optind < argc)
-           {
-             gmon_name = argv[optind];
-           }
+           gmon_name = argv[optind];
        }
       while (optind++ < argc);
     }
 
-  /*
-   * If user did not specify output style, try to guess something
-   * reasonable:
-   */
+  /* If user did not specify output style, try to guess something
+     reasonable.  */
   if (output_style == 0)
     {
       if (gmon_input & (INPUT_HISTOGRAM | INPUT_CALL_GRAPH))
-       output_style = STYLE_FLAT_PROFILE | STYLE_CALL_GRAPH;
+       {
+         if (gmon_input & INPUT_HISTOGRAM)
+           output_style |= STYLE_FLAT_PROFILE;
+         if (gmon_input & INPUT_CALL_GRAPH)
+           output_style |= STYLE_CALL_GRAPH;
+       }
       else
        output_style = STYLE_EXEC_COUNTS;
 
@@ -608,50 +590,46 @@ This program is free software.  This program has absolutely no warranty.\n"));
       done (1);
     }
 
-  /* output whatever user whishes to see: */
-
+  /* Output whatever user whishes to see.  */
   if (cg && (output_style & STYLE_CALL_GRAPH) && bsd_style_output)
     {
-      cg_print (cg);           /* print the dynamic profile */
+      /* Print the dynamic profile.  */
+      cg_print (cg);
     }
 
   if (output_style & STYLE_FLAT_PROFILE)
     {
-      hist_print ();           /* print the flat profile */
+      /* Print the flat profile.  */
+      hist_print ();           
     }
 
   if (cg && (output_style & STYLE_CALL_GRAPH))
     {
       if (!bsd_style_output)
        {
-         cg_print (cg);        /* print the dynamic profile */
+         /* Print the dynamic profile.  */
+         cg_print (cg);        
        }
       cg_print_index ();
     }
 
   if (output_style & STYLE_EXEC_COUNTS)
-    {
-      print_exec_counts ();
-    }
-
+    print_exec_counts ();
+  
   if (output_style & STYLE_ANNOTATED_SOURCE)
-    {
-      print_annotated_source ();
-    }
+    print_annotated_source ();
+  
   if (output_style & STYLE_FUNCTION_ORDER)
-    {
-      cg_print_function_ordering ();
-    }
+    cg_print_function_ordering ();
+  
   if (output_style & STYLE_FILE_ORDER)
-    {
-      cg_print_file_ordering ();
-    }
+    cg_print_file_ordering ();
+
   return 0;
 }
 
 void
-done (status)
-     int status;
+done (int status)
 {
   exit (status);
 }
This page took 0.044179 seconds and 4 git commands to generate.