public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "ian at airs dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug go/64999] s390x libgo test failure in TestMemoryProfiler
Date: Thu, 26 Feb 2015 17:08:00 -0000	[thread overview]
Message-ID: <bug-64999-4-fuVgFte2pV@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-64999-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64999

--- Comment #32 from Ian Lance Taylor <ian at airs dot com> ---
> I don't think it is a good idea to add code in multiple places to fix up the pc values after calling runtime.Callers.  That seems prone to error and confusing for future updates to the code.

Right, which is why I never suggested that.  I suggested changing
runtime.Callers itself to adjust the values that it gets from libbacktrace.


> - Add a wrapper function to the libgo code to call backtrace_full and then adjust the pc value based on the GOARCH value, understanding what backtrace_full might have done and what the GO code expects.  Then there should be no direct calls to backtrace_full in libgo, but only calls to this wrapper function.

Yes, that is exactly what I have been trying to say, but we don't need to
introduce a new function.  We already only call backtrace_full from a single
place in libgo: runtime_callers (which, to be clear, is not the same as
runtime.Callers).


> I think the pc mapping for inlined functions is a separate issue.  Inlining happens in gccgo and not gc and happens on all gcc compilers so the mapping of pc values to line numbers for inlined code is not an issue specific to gccgo and that is not the issue in this testcase.  Maybe it just needs to be documented so users understand that can happen or maybe inlining should be disabled by default for gccgo and then if users enable it they understand what could happen.

To be clear, libbacktrace can handle inlined functions just fine, and libgo
does the right thing for things like the stack traces dumped when a program
crashes.  It also does the right thing when handling the skip parameter to
runtime.Caller and runtime.Callers.  The problem arises when converting the
libbacktrace values into the single PC value expected by Go functions like
runtime.Callers.

I am not going to disable inlining by default for gccgo.  That would be a
performance killer.


  parent reply	other threads:[~2015-02-26 16:11 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-10 12:13 [Bug go/64999] New: " vogt at linux dot vnet.ibm.com
2015-02-10 15:21 ` [Bug go/64999] " vogt at linux dot vnet.ibm.com
2015-02-10 15:23 ` ian at airs dot com
2015-02-10 15:25 ` ian at airs dot com
2015-02-10 15:36 ` vogt at linux dot vnet.ibm.com
2015-02-10 15:55 ` vogt at linux dot vnet.ibm.com
2015-02-10 17:20 ` ian at airs dot com
2015-02-11  7:15 ` vogt at linux dot vnet.ibm.com
2015-02-11  7:38 ` vogt at linux dot vnet.ibm.com
2015-02-11 17:45 ` ian at airs dot com
2015-02-12  7:02 ` vogt at linux dot vnet.ibm.com
2015-02-12 16:45 ` ian at airs dot com
2015-02-12 17:24 ` ian at airs dot com
2015-02-16 10:59 ` vogt at linux dot vnet.ibm.com
2015-02-16 11:49 ` vogt at linux dot vnet.ibm.com
2015-02-16 11:50 ` vogt at linux dot vnet.ibm.com
2015-02-16 14:08 ` ian at airs dot com
2015-02-17 11:13 ` vogt at linux dot vnet.ibm.com
2015-02-17 12:07 ` vogt at linux dot vnet.ibm.com
2015-02-17 14:24 ` ian at airs dot com
2015-02-18  9:21 ` vogt at linux dot vnet.ibm.com
2015-02-18 12:28 ` ian at airs dot com
2015-02-18 13:13 ` vogt at linux dot vnet.ibm.com
2015-02-18 18:52 ` ian at airs dot com
2015-02-24 14:07 ` boger at us dot ibm.com
2015-02-24 18:51 ` ian at airs dot com
2015-02-24 22:25 ` boger at us dot ibm.com
2015-02-25  0:17 ` ian at airs dot com
2015-02-25  0:55 ` boger at us dot ibm.com
2015-02-26  9:55 ` vogt at linux dot vnet.ibm.com
2015-02-26 16:25 ` boger at us dot ibm.com
2015-02-26 16:56 ` ian at airs dot com
2015-02-26 17:08 ` ian at airs dot com [this message]
2015-02-26 17:13 ` boger at us dot ibm.com
2015-02-26 18:25 ` ian at airs dot com
2015-03-06 17:24 ` ian at airs dot com
2015-03-06 20:08 ` boger at us dot ibm.com
2015-03-06 21:08 ` ian at airs dot com
2015-03-09 20:56 ` boger at us dot ibm.com
2015-03-09 22:02 ` ian at airs dot com
2015-03-10 12:28 ` boger at us dot ibm.com
2015-03-10 14:21 ` ian at airs dot com
2015-03-10 14:44 ` boger at us dot ibm.com
2015-03-10 16:17 ` ian at airs dot com
2015-03-10 17:49 ` boger at us dot ibm.com
2015-03-10 18:28 ` ian at airs dot com
2015-03-10 20:18 ` boger at us dot ibm.com
2015-03-10 20:45 ` ian at airs dot com
2015-03-12 14:13 ` boger at us dot ibm.com
2015-03-12 15:30 ` ian at airs dot com
2015-04-17 12:47 ` boger at us dot ibm.com
2015-04-17 13:04 ` boger at us dot ibm.com
2015-04-17 19:30 ` ian at gcc dot gnu.org
2015-04-17 19:30 ` ian at gcc dot gnu.org
2015-04-17 21:32 ` ian at airs dot com
2015-04-21  8:28 ` vogt at linux dot vnet.ibm.com

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=bug-64999-4-fuVgFte2pV@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /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).