From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14007 invoked by alias); 29 Nov 2013 20:16:00 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 13991 invoked by uid 89); 29 Nov 2013 20:15:59 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00,RDNS_NONE,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from Unknown (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 29 Nov 2013 20:15:58 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rATKFpll010823 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 29 Nov 2013 15:15:51 -0500 Received: from brno.lan (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id rATKFor9013247 for ; Fri, 29 Nov 2013 15:15:50 -0500 From: Pedro Alves To: gdb-patches@sourceware.org Subject: [PATCH 0/2] Fix "info frame" in the outermost frame. Date: Fri, 29 Nov 2013 20:16:00 -0000 Message-Id: <1385756149-534-1-git-send-email-palves@redhat.com> X-SW-Source: 2013-11/txt/msg00945.txt.bz2 Doing "info frame" in the outermost frame, when that was indicated by the next frame saying the unwound PC is undefined/not saved, results in error and incomplete output: (gdb) bt #0 thread_function0 (arg=0x0) at threads.c:63 #1 0x00000034cf407d14 in start_thread (arg=0x7ffff7fcb700) at pthread_create.c:309 #2 0x000000323d4f168d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 (gdb) frame 2 #2 0x000000323d4f168d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 115 call *%rax (gdb) info frame Stack level 2, frame at 0x0: rip = 0x323d4f168d in clone (../sysdeps/unix/sysv/linux/x86_64/clone.S:115); saved rip Register 16 was not saved (gdb) This mini-series fixes it. Afterwards, we get: (gdb) info frame Stack level 2, frame at 0x0: rip = 0x323d4f168d in clone (../sysdeps/unix/sysv/linux/x86_64/clone.S:115); saved rip = Outermost frame: outermost caller of frame at 0x7ffff7fcafc0 source language asm. Arglist at 0x7ffff7fcafb8, args: Locals at 0x7ffff7fcafb8, Previous frame's sp is 0x7ffff7fcafc8 (gdb) Pedro Alves (2): New OPTIMIZED_OUT_ERROR error code. Fix "info frame" in the outermost frame. gdb/dwarf2loc.c | 7 +- gdb/exceptions.h | 4 + gdb/frame.c | 111 +++-- gdb/frame.h | 8 - gdb/spu-tdep.c | 5 +- gdb/stack.c | 27 +- gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S | 508 +++++++++++++++++++++ gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c | 36 ++ .../gdb.dwarf2/dw2-undefined-ret-addr.exp | 58 +++ gdb/valops.c | 3 +- gdb/valprint.c | 8 +- gdb/valprint.h | 3 + 12 files changed, 712 insertions(+), 66 deletions(-) create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp -- 1.7.11.7