projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove cleanups from tracefile.c
[deliverable/binutils-gdb.git]
/
gprof
/
gmon_io.c
diff --git
a/gprof/gmon_io.c
b/gprof/gmon_io.c
index 1abf427bafc8eb7f1de05c34d85978877c65141a..fb12fde681c0d9fcc5de6f9df238f6be437ddd5a 100644
(file)
--- a/
gprof/gmon_io.c
+++ b/
gprof/gmon_io.c
@@
-1,13
+1,12
@@
/* gmon_io.c - Input and output from/to gmon.out files.
/* gmon_io.c - Input and output from/to gmon.out files.
- Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005
- Free Software Foundation, Inc.
+ Copyright (C) 1999-2018 Free Software Foundation, Inc.
This file is part of GNU Binutils.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This file is part of GNU Binutils.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version
2
of the License, or
+ the Free Software Foundation; either version
3
of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
(at your option) any later version.
This program is distributed in the hope that it will be useful,
@@
-21,6
+20,7
@@
02110-1301, USA. */
\f
#include "gprof.h"
02110-1301, USA. */
\f
#include "gprof.h"
+#include "binary-io.h"
#include "search_list.h"
#include "source.h"
#include "symtab.h"
#include "search_list.h"
#include "source.h"
#include "symtab.h"
@@
-61,7
+61,7
@@
int gmon_input = 0;
int gmon_file_version = 0; /* 0 == old (non-versioned) file format. */
static enum gmon_ptr_size
int gmon_file_version = 0; /* 0 == old (non-versioned) file format. */
static enum gmon_ptr_size
-gmon_get_ptr_size ()
+gmon_get_ptr_size (
void
)
{
int size;
{
int size;
@@
-87,7
+87,7
@@
gmon_get_ptr_size ()
}
static enum gmon_ptr_signedness
}
static enum gmon_ptr_signedness
-gmon_get_ptr_signedness ()
+gmon_get_ptr_signedness (
void
)
{
int sext;
{
int sext;
@@
-300,9
+300,7
@@
gmon_out_read (const char *filename)
if (strcmp (filename, "-") == 0)
{
ifp = stdin;
if (strcmp (filename, "-") == 0)
{
ifp = stdin;
-#ifdef SET_BINARY
SET_BINARY (fileno (stdin));
SET_BINARY (fileno (stdin));
-#endif
}
else
{
}
else
{
@@
-493,12
+491,15
@@
gmon_out_read (const char *filename)
if (!histograms)
{
if (!histograms)
{
- histograms = xmalloc (sizeof (struct histogram));
+ num_histograms = 1;
+ histograms = (struct histogram *) xmalloc (sizeof (struct histogram));
histograms->lowpc = tmp.low_pc;
histograms->highpc = tmp.high_pc;
histograms->num_bins = hist_num_bins;
histograms->lowpc = tmp.low_pc;
histograms->highpc = tmp.high_pc;
histograms->num_bins = hist_num_bins;
- histograms->sample = xmalloc (hist_num_bins * sizeof (int));
- memset (histograms->sample, 0,
+ hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT))
+ / hist_num_bins;
+ histograms->sample = (int *) xmalloc (hist_num_bins * sizeof (int));
+ memset (histograms->sample, 0,
hist_num_bins * sizeof (int));
}
hist_num_bins * sizeof (int));
}
@@
-531,7
+532,7
@@
gmon_out_read (const char *filename)
done (1);
}
done (1);
}
- histograms->sample[i]
+ histograms->sample[i]
+= bfd_get_16 (core_bfd, (bfd_byte *) raw_bin_count);
}
+= bfd_get_16 (core_bfd, (bfd_byte *) raw_bin_count);
}
@@
-549,8
+550,6
@@
gmon_out_read (const char *filename)
cg_tally (from_pc, self_pc, count);
}
cg_tally (from_pc, self_pc, count);
}
- fclose (ifp);
-
if (hz == HZ_WRONG)
{
/* How many ticks per second? If we can't tell, report
if (hz == HZ_WRONG)
{
/* How many ticks per second? If we can't tell, report
@@
-571,6
+570,9
@@
gmon_out_read (const char *filename)
done (1);
}
done (1);
}
+ if (ifp != stdin)
+ fclose (ifp);
+
if (output_style & STYLE_GMON_INFO)
{
printf (_("File `%s' (version %d) contains:\n"),
if (output_style & STYLE_GMON_INFO)
{
printf (_("File `%s' (version %d) contains:\n"),
@@
-669,7
+671,7
@@
gmon_out_write (const char *filename)
case ptr_64bit:
hdrsize = GMON_HDRSIZE_OLDBSD_64;
/* FIXME: Checking host compiler defines here means that we can't
case ptr_64bit:
hdrsize = GMON_HDRSIZE_OLDBSD_64;
/* FIXME: Checking host compiler defines here means that we can't
- use a cross gprof alpha OSF. */
+ use a cross gprof alpha OSF. */
#if defined(__alpha__) && defined (__osf__)
padsize = 4;
#endif
#if defined(__alpha__) && defined (__osf__)
padsize = 4;
#endif
@@
-681,7
+683,7
@@
gmon_out_write (const char *filename)
old BSD and 4.4BSD formats. */
if (gmon_io_write_vma (ofp, histograms->lowpc)
|| gmon_io_write_vma (ofp, histograms->highpc)
old BSD and 4.4BSD formats. */
if (gmon_io_write_vma (ofp, histograms->lowpc)
|| gmon_io_write_vma (ofp, histograms->highpc)
- || gmon_io_write_32 (ofp, histograms->num_bins
+ || gmon_io_write_32 (ofp, histograms->num_bins
* sizeof (UNIT) + hdrsize))
{
perror (filename);
* sizeof (UNIT) + hdrsize))
{
perror (filename);
This page took
0.024383 seconds
and
4
git commands to generate.