public inbox for sid@sourceware.org
 help / color / mirror / Atom feed
From: Dave Brolley <brolley@redhat.com>
To: Dave Brolley <brolley@redhat.com>
Cc: sid@sources.redhat.com
Subject: Re: [patch][commit] Two problems with --gprof
Date: Wed, 27 Sep 2006 20:46:00 -0000	[thread overview]
Message-ID: <451AE311.9000408@redhat.com> (raw)
In-Reply-To: <451AE0F9.3040502@redhat.com>

Ooops --- I got 1) and 2) reversed below...

Dave Brolley wrote:

> Hi,
>
> I've committed this patch which addresses two minor problems with the 
> --gprof option.
>
> 1) The change to sidcpuutil.h addresses a problem in which 
> --gprof=<file>,cycles was not recognized (i.e. cycles specified with 
> no value -- default should be 1).
>
> 2) The change to commonCfg.cxx fixes an off-by-one problem which was 
> causing an underflow.
>
> Tested on the internal port which exposed the problems.
>
> Dave
>
>------------------------------------------------------------------------
>
>sid/include/ChangeLog:
>2006-09-27  Dave Brolley  <brolley@redhat.com>
>
>	* sidcpuutil.h (basic_cpu::configure): Set gprof_prev_cycle to
>	total_insn_count when gprof 'cycles' not specified.
>
>sid/main/dynamic/ChangeLog:
>2006-09-27  Dave Brolley  <brolley@redhat.com>
>
>	* commonCfg.cxx (profile_opt_gprof_value): Handle "gprof=<file>,cycles".
>
>  
>
>------------------------------------------------------------------------
>
>Index: sid/include/sidcpuutil.h
>===================================================================
>RCS file: /cvs/src/src/sid/include/sidcpuutil.h,v
>retrieving revision 1.38
>diff -c -p -r1.38 sidcpuutil.h
>*** sid/include/sidcpuutil.h	26 Jun 2006 21:04:00 -0000	1.38
>--- sid/include/sidcpuutil.h	27 Sep 2006 20:22:50 -0000
>*************** namespace sidutil
>*** 662,668 ****
>  		    // Set the state so that the next insn will be sampled,
>  		    // followed by samples at the specified interval.
>  		    gprof_counter = step_insn_count - 1;
>! 		    gprof_prev_cycle = this->total_insn_count - 1;
>  		  }
>  	      }
>  	    return;
>--- 662,668 ----
>  		    // Set the state so that the next insn will be sampled,
>  		    // followed by samples at the specified interval.
>  		    gprof_counter = step_insn_count - 1;
>! 		    gprof_prev_cycle = this->total_insn_count;
>  		  }
>  	      }
>  	    return;
>Index: sid/main/dynamic/commonCfg.cxx
>===================================================================
>RCS file: /cvs/src/src/sid/main/dynamic/commonCfg.cxx,v
>retrieving revision 1.17
>diff -c -p -r1.17 commonCfg.cxx
>*** sid/main/dynamic/commonCfg.cxx	19 Sep 2006 18:40:56 -0000	1.17
>--- sid/main/dynamic/commonCfg.cxx	27 Sep 2006 20:22:50 -0000
>*************** SessionCfg::profile_opt_gprof_value (con
>*** 776,793 ****
>      profile_config_error (opt); // doesn't return
>  
>    vector<string> sub_parts = sidutil::tokenize (opt_parts[1], ",");
>    string value = sub_parts[0];
>!   if (size == 3)
>      {
>!       if (sub_parts.size () != 2 || sub_parts[1] != "cycles")
>! 	profile_config_error (opt); // doesn't return
>! 
>!       unsigned n;
>!       sid::component::status s = sidutil::parse_attribute (opt_parts[2], n);
>!       if (s != sid::component::ok)
>  	profile_config_error (opt); // doesn't return
>  
>!       value += "," + opt_parts[2];
>      }
>  
>    need_gprof = true;
>--- 776,800 ----
>      profile_config_error (opt); // doesn't return
>  
>    vector<string> sub_parts = sidutil::tokenize (opt_parts[1], ",");
>+   if (sub_parts.size () > 2)
>+     profile_config_error (opt); // doesn't return
>+ 
>    string value = sub_parts[0];
>!   if (sub_parts.size () == 2)
>      {
>!       if (sub_parts[1] != "cycles")
>  	profile_config_error (opt); // doesn't return
>  
>!       if (size == 3)
>! 	{
>! 	  unsigned n;
>! 	  sid::component::status s = sidutil::parse_attribute (opt_parts[2], n);
>! 	  if (s != sid::component::ok)
>! 	    profile_config_error (opt); // doesn't return
>! 	  value += "," + opt_parts[2];
>! 	}
>!       else
>! 	value += ",1";
>      }
>  
>    need_gprof = true;
>  
>

      reply	other threads:[~2006-09-27 20:46 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-27 20:37 Dave Brolley
2006-09-27 20:46 ` Dave Brolley [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=451AE311.9000408@redhat.com \
    --to=brolley@redhat.com \
    --cc=sid@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).