From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26891 invoked by alias); 12 Jun 2006 17:24:29 -0000 Received: (qmail 26473 invoked by uid 48); 12 Jun 2006 17:23:32 -0000 Date: Mon, 12 Jun 2006 17:24:00 -0000 Message-ID: <20060612172332.26472.qmail@sourceware.org> From: "fche at redhat dot com" To: systemtap@sources.redhat.com In-Reply-To: <20060609125853.2738.guanglei@cn.ibm.com> References: <20060609125853.2738.guanglei@cn.ibm.com> Reply-To: sourceware-bugzilla@sourceware.org Subject: [Bug runtime/2738] deref error on ppc64 X-Bugzilla-Reason: AssignedTo Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org X-SW-Source: 2006-q2/txt/msg00607.txt.bz2 ------- Additional Comments From fche at redhat dot com 2006-06-12 17:23 ------- Here is the $return tvar extractor function in the attached .c file. intptr_t addr; { // DWARF expression: 0x73 { intptr_t s0; s0 = fetch_register (3) + 0L; addr = s0; } } THIS->__retvalue = deref (8, addr); Compared to the ppc64 retval() function, this does one extra round of dereference. According the ppc64 ABI [1], r3 should only be dereferenced for aggregates/unions/longer character strings. Integers are returned simply without indirection. So here we have an ABI misunderstanding. It may be a bug in the new $return code handling (thus cc:ing dsmith), or inadequacy of the elfutils api for this distinction (thus cc:ing roland). [1] http://freestandards.org/spec/ELF/ppc64/spec/x280.html#RETURN-VAL -- What |Removed |Added ---------------------------------------------------------------------------- CC| |dsmith at redhat dot com, | |roland at redhat dot com http://sourceware.org/bugzilla/show_bug.cgi?id=2738 ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.