From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24967 invoked by alias); 31 Aug 2009 16:47:01 -0000 Received: (qmail 24792 invoked by uid 22791); 31 Aug 2009 16:46:59 -0000 X-SWARE-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL,BAYES_00,SPF_SOFTFAIL X-Spam-Check-By: sourceware.org Received: from mtaout4.012.net.il (HELO mtaout3.012.net.il) (84.95.2.10) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 31 Aug 2009 16:46:51 +0000 Received: from conversion-daemon.i_mtaout3.012.net.il by i_mtaout3.012.net.il (HyperSendmail v2004.12) id <0KP900H002E1TN00@i_mtaout3.012.net.il> for gdb-patches@sourceware.org; Mon, 31 Aug 2009 19:46:46 +0300 (IDT) Received: from HOME-C4E4A596F7 ([84.228.144.38]) by i_mtaout3.012.net.il (HyperSendmail v2004.12) with ESMTPA id <0KP90076E2LXOJG0@i_mtaout3.012.net.il>; Mon, 31 Aug 2009 19:46:46 +0300 (IDT) Date: Mon, 31 Aug 2009 17:41:00 -0000 From: Eli Zaretskii Subject: Re: [RFA/RFC Prec] Add process record skip 6/6 (doc) In-reply-to: To: Hui Zhu Cc: gdb-patches@sourceware.org, msnyder@vmware.com, green@moxielogic.com Reply-to: Eli Zaretskii Message-id: <83hbvo9blv.fsf@gnu.org> References: <837hwzir3w.fsf@gnu.org> <8363cefkkp.fsf@gnu.org> <83fxbhdofo.fsf@gnu.org> <83skfecvmz.fsf@gnu.org> 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-08/txt/msg00587.txt.bz2 > From: Hui Zhu > Date: Mon, 31 Aug 2009 21:26:04 +0800 > Cc: gdb-patches@sourceware.org, msnyder@vmware.com, green@moxielogic.com > > --000e0cd72d34f48d8004726ffae8 > Content-Type: text/plain; charset=ISO-8859-1 > Content-Transfer-Encoding: quoted-printable > > On Thu, Aug 27, 2009 at 01:50, Eli Zaretskii wrote: > >> From: Hui Zhu > >> Date: Tue, 25 Aug 2009 11:47:09 +0800 > >> Cc: gdb-patches@sourceware.org, msnyder@vmware.com, green@moxielogic.com > >> > >> >> i386_linux_process_record_simple_function is for printf. > >> >> i386_linux_process_record_memset is for memset and memcpy. > >> > > >> > So we currently support record skip of only 3 functions, the ones > >> > mentioned above, is that right? =A0In that case, we should document > >> > those functions in the manual, I think. > >> > >> Yes, I think after this feature in, we can add more and more functions > >> to support skip. > > > > But then the proposed code is IMHO awfully limited, isn't it? Why > > not add some more general mechanism, for several broad classes of > > functions (like the `simple_function' class you used for `printf'), > > and let the user specify which functions she wants to skip, instead of > > hard-coding the functions in GDB? > > > > By contrast, the suggested code will cause us to have gobs of library > > functions intimately known to GDB, and will bloat the executable, for > > starters. You didn't answer these concerns. Nor did anyone else; am I the only one who is bothered by the ad-hoc nature of such design? > > Also, why is this code being make Linux-specific? =A0Surely, most, if > > not all, other implementations of `printf', `memset' and `memcpy' have > > the exact same API and the same external effects as those you have in > > glibc, no? > > The api is same, but the ABI for each arch and os is not same, each > printf, memset or memcpy of each arch-os will get the argument from > different memory and different register. And they will change > different memory and reg. Are you talking in general, or are you talking about the x86 architecture? I think all x86 implementations of `printf' and `memset' will use the same ABI, certainly those that use GCC as the native compiler. > +The record skip entry is a special breakpoint. When the process > +record and replay target start, it will be inserted to the > +begin of a function. When this breakpoint break the inferior and ^^^^^ ^^^^^ ^^^^ "beginning" "breaks" ", if" > +@value{GDBN} is in record mode, @value{GDBN} will skip record all ^^^^^^^^^^^^^^^ "refrain from recording" > +the execution log of this function's instructions and record the ^^^^^^^^^^ "and only record" > +change of memory and registers of this function as one instruction. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ "modifications of memory and registers by this function" > +Show the status of record skip. "This command shows the status of record skipping." > +@item record skip disable @r{[}id@r{]} ^^ "@var{id}" > +@item record skip enable @r{[}id@r{]} Likewise. OK with these changes. Thanks.