From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2146 invoked by alias); 19 Jan 2009 14:40:31 -0000 Received: (qmail 2137 invoked by uid 22791); 19 Jan 2009 14:40:30 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,MSGID_FROM_MTA_HEADER,SPF_SOFTFAIL X-Spam-Check-By: sourceware.org Received: from mtagate1.de.ibm.com (HELO mtagate1.de.ibm.com) (195.212.17.161) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 19 Jan 2009 14:40:26 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate1.de.ibm.com (8.13.1/8.13.1) with ESMTP id n0JEeMmu001491 for ; Mon, 19 Jan 2009 14:40:22 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id n0JEeMu12945188 for ; Mon, 19 Jan 2009 15:40:22 +0100 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n0JEeL2S009636 for ; Mon, 19 Jan 2009 15:40:22 +0100 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with SMTP id n0JEeLOl009632; Mon, 19 Jan 2009 15:40:21 +0100 Message-Id: <200901191440.n0JEeLOl009632@d12av02.megacenter.de.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Mon, 19 Jan 2009 15:40:21 +0100 Subject: Re: [RFA] dummy frame handling cleanup, plus inferior fun call signal handling improvement To: dje@google.com (Doug Evans) Date: Mon, 19 Jan 2009 14:40:00 -0000 From: "Ulrich Weigand" Cc: gdb-patches@sourceware.org, pedro@codesourcery.com In-Reply-To: from "Doug Evans" at Jan 18, 2009 11:24:31 PM MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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 X-SW-Source: 2009-01/txt/msg00421.txt.bz2 Doug Evans wrote: > 2009-01-18 Doug Evans > > * dummy-frame.c (dummy_frame): Replace regcache member with > caller_state. > (dummy_frame_push): Replace caller_regcache arg with caller_state. > All callers updated. > (remove_dummy_frame,pop_dummy_frame,lookup_dummy_frame): New fns. > (dummy_frame_pop): Rewrite. Verify requested frame is in the > dummy frame stack. Restore program state. > (cleanup_dummy_frames): Rewrite. > (dummy_frame_sniffer): Update. Make static. > * dummy-frame.h (regcache,frame_info): Delete forward decls. > (inferior_thread_state): New forward decl. > (dummy_frame_push): Update prototype. > * frame.c (frame_pop): dummy_frame_pop now does all the work for > DUMMY_FRAMEs. > * infcall.c (breakpoint_auto_delete_contents): Delete. > (get_function_name,run_inferior_call): New fns. > (call_function_by_hand): Simplify by moving some code to > get_function_name, run_inferior_call. Inferior function call wrapped > in TRY_CATCH so there's less need for cleanups and all exits from > proceed are handled similarily. Detect program exit. > Detect program stopping in a different thread. > Make error messages more consistent. > * inferior.h (inferior_thread_state): Declare (opaque type). > (save_inferior_thread_state,restore_inferior_thread_state, > make_cleanup_restore_inferior_thread_state, > discard_inferior_thread_state, get_inferior_thread_state_regcache): > Declare. > (save_inferior_status): Update prototype. > * infrun.c: (normal_stop): When stopped for the completion of an > inferior function call, verify the expected stack frame kind. > (inferior_thread_state): New struct. > (save_inferior_thread_state,restore_inferior_thread_state, > do_restore_inferior_thread_state_cleanup, > make_cleanup_restore_inferior_thread_state, > discard_inferior_thread_state, > get_inferior_thread_state_regcache): New functions. > (inferior_status): Move stop_signal, stop_pc, registers to > inferior_thread_state. Remove restore_stack_info. > (save_inferior_status): Remove arg restore_stack_info. > All callers updated. Remove saving of state now saved by > save_inferior_thread_state. > (restore_inferior_status): Remove restoration of state now done by > restore_inferior_thread_state. > (discard_inferior_status): Remove freeing of registers, now done by > discard_inferior_thread_state. > > * gdb.base/break.exp: Update expected gdb output. > * gdb.base/sepdebug.exp: Ditto. > * gdb.mi/mi-syn-frame.exp: Ditto. > * gdb.mi/mi2-syn-frame.exp: Ditto. > > * gdb.base/call-signal-resume.exp: New file. > * gdb.base/call-signals.c: New file. > * gdb.base/unwindonsignal.exp: New file. > * gdb.base/unwindonsignal.c: New file. > * gdb.threads/interrupted-hand-call.exp: New file. > * gdb.threads/interrupted-hand-call.c: New file. > * gdb.threads/thread-unwindonsignal.exp: New file. This is OK. Thanks for working on these problems! Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE Ulrich.Weigand@de.ibm.com