From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 128000 invoked by alias); 10 Mar 2015 18:28:25 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 127906 invoked by uid 48); 10 Mar 2015 18:28:20 -0000 From: "ian at airs dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug go/64999] s390x libgo test failure in TestMemoryProfiler Date: Tue, 10 Mar 2015 18:28:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: go X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: ian at airs dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: ian at airs dot com X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-03/txt/msg01154.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64999 --- Comment #47 from Ian Lance Taylor --- We have to separate backtrace_full and backtrace_simple, which are part of the libbacktrace library, from functions like runtime_callers which are part of libgo. The libbacktrace library is used by several different projects. It is not part of libgo. It may be correct that libbacktrace should never decrement pc. But the argument for that can't be the behaviour of the gc library. The bit in comment #9 about not decrementing the pc for a signal frame is specific to libbacktrace. You can see that in unwind in libbacktrace/backtrace.c and in simple_unwind in libbacktrace/simple.c. Perhaps we need to change libbacktrace so that backtrace_full_callback and backtrace_simple_callback take an additional parameter, which is whether the PC is in a signal frame. From libgo's perspective, though, that would be exactly the same as simply always adding to pc in callback in go-callers.c. You said that did not work, and I'm still trying to understand why.