2006-05-02 Dave Korn <dave.korn@artimi.com>
[deliverable/binutils-gdb.git] / gprof / gprof.c
index 727aca41ba78a95ddbd6e715b1e2aa97a182b05f..dc6b618fdfd437155a7f742b8b2c07c84d9709c0 100644 (file)
@@ -45,7 +45,6 @@
 #include "getopt.h"
 
 static void usage (FILE *, int) ATTRIBUTE_NORETURN;
-int main (int, char **);
 
 const char *whoami;
 const char *function_mapping_file;
@@ -78,8 +77,6 @@ char copyright[] =
 
 static char *gmon_name = GMONNAME;     /* profile filename */
 
-bfd *abfd;
-
 /*
  * Functions that get excluded by default:
  */
@@ -170,7 +167,7 @@ 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)
@@ -192,12 +189,16 @@ main (int argc, char **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::",
                            long_options, 0))
@@ -482,29 +483,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);
@@ -512,14 +504,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);
 
@@ -551,17 +535,13 @@ 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))
@@ -604,44 +584,41 @@ 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;
 }
 
This page took 0.027046 seconds and 4 git commands to generate.