From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1097 invoked by alias); 26 Sep 2009 22:35:48 -0000 Received: (qmail 1089 invoked by uid 22791); 26 Sep 2009 22:35:47 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,WEIRD_PORT X-Spam-Check-By: sourceware.org Received: from smtp-outbound-2.vmware.com (HELO smtp-outbound-2.vmware.com) (65.115.85.73) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 26 Sep 2009 22:35:43 +0000 Received: from mailhost4.vmware.com (mailhost4.vmware.com [10.16.67.124]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id A30BF3600E; Sat, 26 Sep 2009 15:35:40 -0700 (PDT) Received: from [10.20.94.141] (msnyder-server.eng.vmware.com [10.20.94.141]) by mailhost4.vmware.com (Postfix) with ESMTP id 95B86C9B98; Sat, 26 Sep 2009 15:35:40 -0700 (PDT) Message-ID: <4ABE96C8.6070702@vmware.com> Date: Sat, 26 Sep 2009 22:35:00 -0000 From: Michael Snyder User-Agent: Thunderbird 1.5.0.12 (X11/20080411) MIME-Version: 1.0 To: Hui Zhu CC: Joel Brobecker , gdb-patches ml , Marc Khouzam Subject: Re: Record segfault References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-IsSubscribed: yes 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-09/txt/msg00841.txt.bz2 This seems fine to me. Please check it into the main branch, but don't add it to the release branch unless Joel says it's OK. Michael Hui Zhu wrote: > Hi Joel, > > Sorry to disturb you. Ping > http://sourceware.org/ml/gdb-patches/2009-09/msg00357.html > > Thanks, > Hui > > On Sat, Sep 12, 2009 at 10:39, Hui Zhu wrote: >> Thanks Mark. >> >> This reason of this issue is because we want close the old record >> target with record_close that will be called by "push_target >> (&record_ops);" >> This line is after "Set the beneath function pointers." >> >> So it make "record_beneath_to_insert_breakpoint" point to the record_insert_xxx. >> >> In 2 months before, I post a patch that change this query to error. I >> post it again, wish you like it. >> >> Thanks, >> Hui >> >> 2009-09-12 Hui Zhu >> >> * record.c (record_open): Change "query" to "error". >> (cmd_record_stop): Change "query" to "printf_unfiltered". >> >> --- >> record.c | 14 +++++--------- >> 1 file changed, 5 insertions(+), 9 deletions(-) >> >> --- a/record.c >> +++ b/record.c >> @@ -436,12 +436,8 @@ record_open (char *name, int from_tty) >> >> /* Check if record target is already running. */ >> if (current_target.to_stratum == record_stratum) >> - { >> - if (!nquery >> - (_("Process record target already running, do you want to delete " >> - "the old record log?"))) >> - return; >> - } >> + error (_("Process record target already running. Use \"record stop\" to " >> + "stop record target first.")); >> >> /*Reset the beneath function pointers. */ >> record_beneath_to_resume = NULL; >> @@ -1157,9 +1153,9 @@ cmd_record_stop (char *args, int from_tt >> { >> if (current_target.to_stratum == record_stratum) >> { >> - if (!record_list || !from_tty || query (_("Delete recorded log and " >> - "stop recording?"))) >> - unpush_target (&record_ops); >> + unpush_target (&record_ops); >> + printf_unfiltered (_("Process record is stoped and all execution " >> + "log is deleted.\n")); >> } >> else >> printf_unfiltered (_("Process record is not started.\n")); >> >> >> On Fri, Sep 11, 2009 at 22:24, Marc Khouzam wrote: >>> Hi Hui, >>> >>> I see a Segmentation fault when enabling Record when it is already on. >>> >>> GNU gdb (GDB) 6.8.50.20090910-cvs >>> Copyright (C) 2009 Free Software Foundation, Inc. >>> License GPLv3+: GNU GPL version 3 or later >>> This is free software: you are free to change and redistribute it. >>> There is NO WARRANTY, to the extent permitted by law. Type "show copying" >>> and "show warranty" for details. >>> This GDB was configured as "i686-pc-linux-gnu". >>> For bug reporting instructions, please see: >>> ... >>> Reading symbols from /local/lmckhou/testing/a.out...done. >>> (gdb) l >>> 1 int main() >>> 2 { >>> 3 int a = 0; >>> 4 int b = 1; >>> 5 return 0; >>> 6 } >>> (gdb) start >>> Temporary breakpoint 1 at 0x8048415: file a.cc, line 3. >>> Starting program: /local/lmckhou/testing/a.out >>> >>> Temporary breakpoint 1, main () at a.cc:3 >>> 3 int a = 0; >>> (gdb) record >>> (gdb) record >>> Process record target already running, do you want to delete the old record log?(y or [n]) y >>> (gdb) n >>> Segmentation fault >>> >>> Here is the backtrace: >>> (gdb) bt >>> #0 0xb7d2e449 in _int_malloc () from /lib/libc.so.6 >>> #1 0xb7d2fce6 in malloc () from /lib/libc.so.6 >>> #2 0x0808f564 in xmalloc (size=16) at ../../src/gdb/utils.c:1229 >>> #3 0x0808e585 in make_my_cleanup2 (pmy_chain=0x84003e0, function=0x808e50b , arg=0x8d0cf50, free_arg=0x808f63b ) >>> at ../../src/gdb/utils.c:349 >>> #4 0x0808e571 in make_cleanup_restore_integer (variable=0x8413190) at ../../src/gdb/utils.c:340 >>> #5 0x0822724e in record_gdb_operation_disable_set () at ../../src/gdb/record.c:414 >>> #6 0x082283aa in record_insert_breakpoint (gdbarch=0x848c7d8, bp_tgt=0x84e2aa4) at ../../src/gdb/record.c:1081 >>> #7 0x082283c2 in record_insert_breakpoint (gdbarch=0x848c7d8, bp_tgt=0x84e2aa4) at ../../src/gdb/record.c:1082 >>> #8 0x082283c2 in record_insert_breakpoint (gdbarch=0x848c7d8, bp_tgt=0x84e2aa4) at ../../src/gdb/record.c:1082 >>> #9 0x082283c2 in record_insert_breakpoint (gdbarch=0x848c7d8, bp_tgt=0x84e2aa4) at ../../src/gdb/record.c:1082 >>> #10 0x082283c2 in record_insert_breakpoint (gdbarch=0x848c7d8, bp_tgt=0x84e2aa4) at ../../src/gdb/record.c:1082 >>> #11 0x082283c2 in record_insert_breakpoint (gdbarch=0x848c7d8, bp_tgt=0x84e2aa4) at ../../src/gdb/record.c:1082 >>> #12 0x082283c2 in record_insert_breakpoint (gdbarch=0x848c7d8, bp_tgt=0x84e2aa4) at ../../src/gdb/record.c:1082 >>> #13 0x082283c2 in record_insert_breakpoint (gdbarch=0x848c7d8, bp_tgt=0x84e2aa4) at ../../src/gdb/record.c:1082 >>> ... >>> >>> This continues over and over and over .... >>> >>> Thanks >>> >>>