* [RFA] Submit process record and replay fourth time, 0/8 @ 2009-03-21 15:59 Hui Zhu 2009-03-25 9:02 ` Hui Zhu 2009-03-30 8:35 ` Hui Zhu 0 siblings, 2 replies; 17+ messages in thread From: Hui Zhu @ 2009-03-21 15:59 UTC (permalink / raw) To: gdb-patches Cc: Pedro Alves, Marc Khouzam, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, paawan1982 [-- Attachment #1: Type: text/plain, Size: 1580 bytes --] Hi guys, After third time submit, there are a lot of change with process record and replay. So I submit fourth time to make it clear to review. For this time, Most of changes were updated follow cvs head and a lot of format fixes. Patch for target.c was removed. Record.c was updated a lot of parts according to the ideas of Pedro (Much appreciated). Thanks for help of everybody in the maillist. Process record and replay make gdb can record inferior execute log and replay (include reverse debug). Now, it support I386-Linux single-thread inferior native debug. I've divided this patch into eight sections, for ease of review. They group as: 1) Architecture support layer (gdbarch.sh, gdbarch.c, gbarch.h). 2) New stratum of strata in target layer (target.h). 3) Process record and replay target (record.c, record.h, Makefile.in). 4) Process record and replay for Linux (linux-record.c, linux-record.h, Makefile.in, configure.tgt). 5) Event handling (infrun.c). 6) Intel 386 target-dependent stuff (i386-tdep.c, i386-tdep.h). 7) Target-dependent code for GNU/Linux i386 (i386-linux-tdep.c). 8) User interface and documentation. For the NEWS: * Process record and replay In a architecture environment that supports ``process record and replay'', ``process record and replay'' target can record a log of the process execution, and replay it with both forward and reverse execute commands. These patches be tested with testsuite gdb.twreverse in branch reverse-20081226-branch. Attachment is the compressed patches package to make get all patches easy. Thanks, Hui [-- Attachment #2: prec40.tar.bz2 --] [-- Type: application/x-bzip2, Size: 25119 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-03-21 15:59 [RFA] Submit process record and replay fourth time, 0/8 Hui Zhu @ 2009-03-25 9:02 ` Hui Zhu 2009-04-02 14:26 ` Pedro Alves 2009-03-30 8:35 ` Hui Zhu 1 sibling, 1 reply; 17+ messages in thread From: Hui Zhu @ 2009-03-25 9:02 UTC (permalink / raw) To: gdb-patches Cc: Pedro Alves, Marc Khouzam, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, paawan1982 [-- Attachment #1: Type: text/plain, Size: 1784 bytes --] Some update. On Sat, Mar 21, 2009 at 23:58, Hui Zhu <teawater@gmail.com> wrote: > Hi guys, > > After third time submit, there are a lot of change with process record > and replay. So I submit fourth time to make it clear to review. > > For this time, Most of changes were updated follow cvs head and a lot > of format fixes. Patch for target.c was removed. Record.c was > updated a lot of parts according to the ideas of Pedro (Much > appreciated). > Thanks for help of everybody in the maillist. > > Process record and replay make gdb can record inferior execute log and > replay (include reverse debug). > Now, it support I386-Linux single-thread inferior native debug. > > I've divided this patch into eight sections, for ease of review. > They group as: > 1) Architecture support layer (gdbarch.sh, gdbarch.c, gbarch.h). > 2) New stratum of strata in target layer (target.h). > 3) Process record and replay target (record.c, record.h, Makefile.in). > 4) Process record and replay for Linux (linux-record.c, > linux-record.h, Makefile.in, configure.tgt). > 5) Event handling (infrun.c). > 6) Intel 386 target-dependent stuff (i386-tdep.c, i386-tdep.h). > 7) Target-dependent code for GNU/Linux i386 (i386-linux-tdep.c). > 8) User interface and documentation. > > For the NEWS: > * Process record and replay > > In a architecture environment that supports ``process record and > replay'', ``process record and replay'' target can record a log of > the process execution, and replay it with both forward and reverse > execute commands. > > These patches be tested with testsuite gdb.twreverse in branch > reverse-20081226-branch. > > Attachment is the compressed patches package to make get all patches easy. > > Thanks, > Hui > [-- Attachment #2: prec41.tar.bz2 --] [-- Type: application/x-bzip2, Size: 25302 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-03-25 9:02 ` Hui Zhu @ 2009-04-02 14:26 ` Pedro Alves 2009-04-15 16:56 ` Hui Zhu 0 siblings, 1 reply; 17+ messages in thread From: Pedro Alves @ 2009-04-02 14:26 UTC (permalink / raw) To: gdb-patches Cc: Hui Zhu, Marc Khouzam, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, paawan1982 On Wednesday 25 March 2009 07:23:45, Hui Zhu wrote: > Some update. Thanks. I'm not sure I'm looking at the most up-to-date version. Here's a few review comments. * 1-gdbarch.txt This one's OK. * 2-target_record_stratum.txt This one's OK. * 3-record_target.txt > +record_list_release (record_t * rec) ^ drop the space between '*' and rec, here and elsewhere. Is record_t supposed to be an opaque type? Throughout gdb, we tend to only "_t" struct typedef types if they're going to be value-like, passed by type, and opaque. Otherwise, we just use something like: record_list_release (struct record_entry *rec) that is, no typedef. > +/* Add a record_end type record_t to record_arch_list. */ > +int > +record_arch_list_add_end (void) Add a blank line between comment and function. > + q = yquery (_("Do you want to auto delete previous execution " > + "log entries when record/replay buffer becomes " > + "full (record-stop-at-limit)?")); What do you mean here by "when"? Didn't the user just hit the limit *now*, and that is why you're asking what to do? > +/* Before inferior step (when GDB record the running message, inferior > + only can step), GDB will call this function to record the values to > + record_list. This function will call gdbarch_process_record to > + record the running message of inferior and set them to > + record_arch_list, and add it to record_list. */ > + (...) > + > +static int > +record_message (void *args) > +{ > + int ret; > + struct gdbarch *gdbarch = args; > + struct cleanup *old_cleanups = make_cleanup (record_message_cleanups, 0); > + > + record_arch_list_head = NULL; > + record_arch_list_tail = NULL; > + > + /* Check record_insn_num. */ > + record_check_insn_num (1); > + > + record_regcache = get_current_regcache (); - When I read the first time, my question is: 'What is a "record message"'? - ARGS is a `struct gdbarch', yet you access the current regcache. I see you pass current_gdbarch to do_record_message. We're trying to eliminate the current_gdbarch global. > + if (do_record_message (current_gdbarch)) You can get at the correct gdbarch with get_regcache_arch. While we're there, what is the point of the record_regcache global? We *are* trying to move away from global state, but I don't see how this new global is any better than accessing get_current_regcache directly. The alternative would be to pass the regcache as parameter instead. > +static void > +record_sig_handler (int signo) > +{ > + if (record_debug) > + fprintf_unfiltered (gdb_stdlog, "Process record: get a signal\n"); > + > + /* It will break the running inferior in replay mode. */ > + record_resume_step = 1; I still don't understand this comment. Please explain *why* you need to set this here. > + > + /* It will let record_wait set inferior status to get the signal > + SIGINT. */ > + record_get_sig = 1; > +} > +struct cleanup * > +record_gdb_operation_disable_set (void) > +{ > + struct cleanup *old_cleanups = NULL; > + > + if (!record_gdb_operation_disable) > + { > + old_cleanups = > + make_cleanup_restore_integer (&record_gdb_operation_disable); > + record_gdb_operation_disable = 1; > + } > + > + return old_cleanups; > +} This returns a NULL cleanup if record_gdb_operation_disable is already set, but make_cleanup also returns a legitimate NULL, and it is not an error. It returns NULL when for the first cleanup put in the chain. See make_my_cleanup2. You could make use of "make_cleanup (null_cleanup, NULL)", but, simply: struct cleanup * record_gdb_operation_disable_set (void) { struct cleanup *old_cleanups = NULL; old_cleanups = make_cleanup_restore_integer (&record_gdb_operation_disable); record_gdb_operation_disable = 1; return old_cleanups; } ... should do. make_cleanup_restore_integer restores the previous value, so nested calls are safe. > +static int > +record_insert_breakpoint (struct bp_target_info *bp_tgt) > +{ > + if (!RECORD_IS_REPLAY) > + { > + struct cleanup *old_cleanups = record_gdb_operation_disable_set (); > + int ret = record_beneath_to_insert_breakpoint (bp_tgt); > + > + if (old_cleanups) > + do_cleanups (old_cleanups); So here, this cleanup handling is wrong. Don't check for NULL old_cleanups. Call do_cleanups unconditionally. Here and and elsewhere you used this idiom. > +static void > +record_wait_cleanups (void *ignore) > +{ > + if (execution_direction == EXEC_REVERSE) > + { > + if (record_list->next) > + record_list = record_list->next; > + } > + else > + record_list = record_list->prev; > +} > +static ptid_t > +record_wait (struct target_ops *ops, > + ptid_t ptid, struct target_waitstatus *status) (...) > +struct cleanup *old_cleanups = make_cleanup (record_wait_cleanups, 0); This cleanup looks suspiciously broken to me. It appears that is will do weird things depending on when an exception is thrown. But then again, record_wait's nesting and use of goto's makes my eyes bleed. :P Please delete this comment: > + /* XXX: I try to use some simple commands such as "disconnect" and > + "detach" to support this functions. But these commands all have > + other affect to GDB such as call function "no_shared_libraries". > + So I add special commands to GDB. */ I was looking at the commands record, delrecord, stoprecord, record-stop-at-limit, record-insn-number-max, record-insn-number, and wondering what would you think if we made all record commands under a "record" prefix? record record stop record delete set record stop-at-limit set record insn-number-max info record insn-number * 4-linux-record.txt > + Copyright (C) 2008 Free Software Foundation, Inc. 2009. > +#include <stdint.h> Remove this. defs.h includes stdint.h. + uint32_t addr, count; + regcache_raw_read (record_regcache, tdep->arg2, (gdb_byte *) & addr); This (and many more similar instances) is assuming host-endianness == target-endianess, that the registers are 32-bit, and probably that signed<->unsigned bit representation is equal. Is this what you want? When you get to 64-bit, most of this will break, it seems. * 5-infrun.txt infun.c: > + #include "record.h" > + && current_target.to_stratum != record_stratum); Sigh, I've spent to much time trying to explain why this was wrong. Let's at least leave this behind the macro you used to have. -- Pedro Alves ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-04-02 14:26 ` Pedro Alves @ 2009-04-15 16:56 ` Hui Zhu 2009-04-21 13:31 ` Pedro Alves 0 siblings, 1 reply; 17+ messages in thread From: Hui Zhu @ 2009-04-15 16:56 UTC (permalink / raw) To: Pedro Alves Cc: gdb-patches, Mark Kettenis, Marc Khouzam, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, paawan1982 [-- Attachment #1: Type: text/plain, Size: 7327 bytes --] Hi Pedro, The attachment is the compress for all the patches of precord. And I will post each patch to maillist too. Please help me review it. The following is what I updated according to your comment: > >> +record_list_release (record_t * rec) >> ^ > > drop the space between '*' and rec, here and elsewhere. It was fixed in 3. > > Is record_t supposed to be an opaque type? Throughout > gdb, we tend to only "_t" struct typedef types if they're > going to be value-like, passed by type, and opaque. > Otherwise, we just use something like: > > record_list_release (struct record_entry *rec) > record_t is changed to record_entry in 3. > > Add a blank line between comment and function. > I fixed it in all the patches of p record. >> + record_regcache = get_current_regcache (); > > > - ARGS is a `struct gdbarch', yet you access the current regcache. > I see you pass current_gdbarch to do_record_message. We're trying > to eliminate the current_gdbarch global. > >> + if (do_record_message (current_gdbarch)) record_regcache was removed. Now, regcache is the argument of a lot of functions of precord. > Please delete this comment: > >> + /* XXX: I try to use some simple commands such as "disconnect" and >> + "detach" to support this functions. But these commands all have >> + other affect to GDB such as call function "no_shared_libraries". >> + So I add special commands to GDB. */ It was deleted. > * 4-linux-record.txt > >> + Copyright (C) 2008 Free Software Foundation, Inc. > > 2009. Done. >> +#include <stdint.h> > Remove this. defs.h includes stdint.h. Done. > I was looking at the commands record, delrecord, stoprecord, > record-stop-at-limit, record-insn-number-max, record-insn-number, > and wondering what would you think if we made all record commands > under a "record" prefix? > > record > record stop > record delete > set record stop-at-limit > set record insn-number-max > info record insn-number Done. > * 5-infrun.txt > infun.c: > >> + #include "record.h" > >> + && current_target.to_stratum != record_stratum); > > Sigh, I've spent to much time trying to explain why this was > wrong. Let's at least leave this behind the macro you used to > have. OK. I make it to a macro. The following is my explain for your comment: > >> + q = yquery (_("Do you want to auto delete previous execution " >> + "log entries when record/replay buffer becomes " >> + "full (record-stop-at-limit)?")); > > > What do you mean here by "when"? Didn't the user just hit > the limit *now*, and that is why you're asking what to do? > Because if user said yes, it will auto delete each time. It will not ask user again. So I say when. > - When I read the first time, my question is: 'What is a "record message"'? GDB record the running message. >> +static void >> +record_sig_handler (int signo) >> +{ >> + if (record_debug) >> + fprintf_unfiltered (gdb_stdlog, "Process record: get a signal\n"); >> + >> + /* It will break the running inferior in replay mode. */ >> + record_resume_step = 1; > > I still don't understand this comment. Please explain *why* you > need to set this here. > { /* In EXEC_REVERSE mode, this is the record_end of prev instruction. In EXEC_FORWARD mode, this is the record_end of current instruction. */ /* step */ if (record_resume_step) { if (record_debug > 1) fprintf_unfiltered (gdb_stdlog, "Process record: step.\n"); continue_flag = 0; } /* check breakpoint */ tmp_pc = regcache_read_pc (regcache); if (breakpoint_inserted_here_p (tmp_pc)) { if (record_debug) fprintf_unfiltered (gdb_stdlog, "Process record: break " "at 0x%s.\n", paddr_nz (tmp_pc)); if (gdbarch_decr_pc_after_break (get_regcache_arch (regcache)) && execution_direction == EXEC_FORWARD && !record_resume_step) regcache_write_pc (regcache, tmp_pc + gdbarch_decr_pc_after_break (get_regcache_arch (regcache))); continue_flag = 0; } } When p record get a sig, I need it stop like single step. So set record_resume_step to 1. > >> +struct cleanup * >> +record_gdb_operation_disable_set (void) >> +{ >> + struct cleanup *old_cleanups = NULL; >> + >> + if (!record_gdb_operation_disable) >> + { >> + old_cleanups = >> + make_cleanup_restore_integer (&record_gdb_operation_disable); >> + record_gdb_operation_disable = 1; >> + } >> + >> + return old_cleanups; >> +} > > This returns a NULL cleanup if record_gdb_operation_disable is > already set, but make_cleanup also returns a legitimate > NULL, and it is not an error. It returns NULL when for the > first cleanup put in the chain. See make_my_cleanup2. > if (set_cleanups) do_cleanups (set_cleanups); void do_cleanups (struct cleanup *old_chain) { do_my_cleanups (&cleanup_chain, old_chain); } static void do_my_cleanups (struct cleanup **pmy_chain, struct cleanup *old_chain) { struct cleanup *ptr; while ((ptr = *pmy_chain) != old_chain) { *pmy_chain = ptr->next; /* Do this first incase recursion */ (*ptr->function) (ptr->arg); if (ptr->free_arg) (*ptr->free_arg) (ptr->arg); xfree (ptr); } } NULL will make all the chain clean. > >> +static void >> +record_wait_cleanups (void *ignore) >> +{ >> + if (execution_direction == EXEC_REVERSE) >> + { >> + if (record_list->next) >> + record_list = record_list->next; >> + } >> + else >> + record_list = record_list->prev; >> +} > >> +static ptid_t >> +record_wait (struct target_ops *ops, >> + ptid_t ptid, struct target_waitstatus *status) > (...) >> +struct cleanup *old_cleanups = make_cleanup (record_wait_cleanups, 0); > > This cleanup looks suspiciously broken to me. It appears that > is will do weird things depending on when an exception is thrown. > But then again, record_wait's nesting and use of goto's makes > my eyes bleed. :P This cleanup will make record_list point to the record entry that execution before this record entry because set this record entry get fail. This part is not very easy to make clear. I make clear it use a lot of time. :P About goto, most of them are deleted. I just keep one: /* Check breakpoint when forward execute. */ if (execution_direction == EXEC_FORWARD) { xxx xxx goto replay_out; } } > + uint32_t addr, count; > + regcache_raw_read (record_regcache, tdep->arg2, (gdb_byte *) & addr); > > This (and many more similar instances) is assuming > host-endianness == target-endianess, that the registers are 32-bit, and > probably that signed<->unsigned bit representation is equal. Is > this what you want? When you get to 64-bit, most of this will break, > it seems. For now, record just support i386 arch. Please let us keep it to the future. Thanks, Hui [-- Attachment #2: prec20090416.tar.gz --] [-- Type: application/x-gzip, Size: 31701 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-04-15 16:56 ` Hui Zhu @ 2009-04-21 13:31 ` Pedro Alves 2009-04-22 9:03 ` Hui Zhu 0 siblings, 1 reply; 17+ messages in thread From: Pedro Alves @ 2009-04-21 13:31 UTC (permalink / raw) To: gdb-patches Cc: Hui Zhu, Mark Kettenis, Marc Khouzam, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, paawan1982 On Wednesday 15 April 2009 17:56:34, Hui Zhu wrote: > >> +struct cleanup * > >> +record_gdb_operation_disable_set (void) > >> +{ > >> + struct cleanup *old_cleanups = NULL; > >> + > >> + if (!record_gdb_operation_disable) > >> + { > >> + old_cleanups = > >> + make_cleanup_restore_integer (&record_gdb_operation_disable); > >> + record_gdb_operation_disable = 1; > >> + } > >> + > >> + return old_cleanups; > >> +} > > > > This returns a NULL cleanup if record_gdb_operation_disable is > > already set, but make_cleanup also returns a legitimate > > NULL, and it is not an error. It returns NULL when for the > > first cleanup put in the chain. See make_my_cleanup2. > > > > if (set_cleanups) > do_cleanups (set_cleanups); > void > do_cleanups (struct cleanup *old_chain) > { > do_my_cleanups (&cleanup_chain, old_chain); > } > static void > do_my_cleanups (struct cleanup **pmy_chain, > struct cleanup *old_chain) > { > struct cleanup *ptr; > while ((ptr = *pmy_chain) != old_chain) > { > *pmy_chain = ptr->next; /* Do this first incase recursion */ > (*ptr->function) (ptr->arg); > if (ptr->free_arg) > (*ptr->free_arg) (ptr->arg); > xfree (ptr); > } > } > NULL will make all the chain clean. Yes, and that's the problem with your code. You should *not* treat a NULL cleanup any differently from any other cleanup value. If there was no cleanup yet installed in the chain when you called make_cleanup, make_cleanup will return NULL. If later, you check on the result of make_cleanup old_chain = make_cleanup (foo, NULL); ^^^^^^^^^ ^ - this will return NULL if there's nothing else in the chain. But, after the call there's a new cleanup installed (your `foo' cleanup), that you do want to run. if (old_chain) do_cleanups (old_chain); ^^^^^^^^^^^^^ ^ - so this is wrong, because old_chain may be NULL, and you still wanted the do_cleanups call to happen. > >> +static void > >> +record_wait_cleanups (void *ignore) > >> +{ > >> + if (execution_direction == EXEC_REVERSE) > >> + { > >> + if (record_list->next) > >> + record_list = record_list->next; > >> + } > >> + else > >> + record_list = record_list->prev; > >> +} > > > >> +static ptid_t > >> +record_wait (struct target_ops *ops, > >> + ptid_t ptid, struct target_waitstatus *status) > > (...) > >> +struct cleanup *old_cleanups = make_cleanup (record_wait_cleanups, 0); > > > > This cleanup looks suspiciously broken to me. It appears that > > is will do weird things depending on when an exception is thrown. > > But then again, record_wait's nesting and use of goto's makes > > my eyes bleed. :P > > This cleanup will make record_list point to the record entry that > execution before this record entry because set this record entry get > fail. > This part is not very easy to make clear. I make clear it use a lot > of time. :P It looks broken, e.g., because if the cleanup runs before adding a new entry to the list, you'd undo the wrong thing. You needed a conditional on 'record_list->next' being not-NULL --- if the cleanup is always safe and correct to run, why did you need it? > +static void > +record_wait_cleanups (void *ignore) > +{ > + if (execution_direction == EXEC_REVERSE) > + { > + if (record_list->next) ^^^^^^^^^^^^^^^^^^^^^^ > + record_list = record_list->next; > + } > + else > + record_list = record_list->prev; > +} I looks like it would be better to build the record entry, and only when everything is fine and validated, you'd add it to the record list. That way, you wouldn't need to (dangerously) undo a bad list entry. But I'm not going to make a fuss about this. Let's keep it that way for now if you'd like. > > This (and many more similar instances) is assuming > > host-endianness == target-endianess, that the registers are 32-bit, and > > probably that signed<->unsigned bit representation is equal. Is > > this what you want? When you get to 64-bit, most of this will break, > > it seems. > For now, record just support i386 arch. Please let us keep it to the future. Ok. -- Pedro Alves ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-04-21 13:31 ` Pedro Alves @ 2009-04-22 9:03 ` Hui Zhu 2009-04-28 10:24 ` Hui Zhu 0 siblings, 1 reply; 17+ messages in thread From: Hui Zhu @ 2009-04-22 9:03 UTC (permalink / raw) To: Pedro Alves Cc: gdb-patches, Mark Kettenis, Marc Khouzam, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, paawan1982 [-- Attachment #1: Type: text/plain, Size: 474 bytes --] Hi Pedro, The attachment is the compress for all the patches of precord. And I will post changed patch to maillist too. Please help me review it. > > if (old_chain) > do_cleanups (old_chain); > ^^^^^^^^^^^^^ > ^ - so this is wrong, because old_chain may be NULL, and > you still wanted the do_cleanups call to happen. > Sorry for I didn't understand your prev mail. Now I got and fixed it. Thanks for explain it twice. :) Thanks, Hui [-- Attachment #2: prec-20090422.tar.bz2 --] [-- Type: application/x-bzip2, Size: 25466 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-04-22 9:03 ` Hui Zhu @ 2009-04-28 10:24 ` Hui Zhu 2009-04-28 13:50 ` Marc Khouzam 0 siblings, 1 reply; 17+ messages in thread From: Hui Zhu @ 2009-04-28 10:24 UTC (permalink / raw) To: Pedro Alves, Mark Kettenis, Marc Khouzam, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, paawan1982 Cc: gdb-patches [-- Attachment #1: Type: text/plain, Size: 185 bytes --] Hi guys, All of the patches of process record was approved by Pedro and Eli. The attachment is the compress for all the patches of precord. I will check it in 2009-04-30. Thanks, Hui [-- Attachment #2: prec-20090428.tar.bz2.tar.gz --] [-- Type: application/x-gzip, Size: 31780 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [RFA] Submit process record and replay fourth time, 0/8 2009-04-28 10:24 ` Hui Zhu @ 2009-04-28 13:50 ` Marc Khouzam 2009-04-28 15:15 ` Hui Zhu 0 siblings, 1 reply; 17+ messages in thread From: Marc Khouzam @ 2009-04-28 13:50 UTC (permalink / raw) To: Hui Zhu, Pedro Alves, Mark Kettenis, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, paawan1982 Cc: gdb-patches > -----Original Message----- > From: Hui Zhu [mailto:teawater@gmail.com] > Sent: Tuesday, April 28, 2009 6:24 AM > To: Pedro Alves; Mark Kettenis; Marc Khouzam; Michael Snyder; > Thiago Jung Bauermann; Eli Zaretskii; paawan1982@yahoo.com > Cc: gdb-patches@sourceware.org > Subject: Re: [RFA] Submit process record and replay fourth time, 0/8 > > Hi guys, > > All of the patches of process record was approved by Pedro and Eli. > The attachment is the compress for all the patches of precord. > I will check it in 2009-04-30. > > Thanks, > Hui This is great news! I believe there are still three minor patches that haven't been approved yet. Those caused bugs in Reverse execution: http://sourceware.org/ml/gdb-patches/2009-03/msg00428.html http://sourceware.org/ml/gdb-patches/2009-03/msg00005.html http://sourceware.org/ml/gdb-patches/2009-01/msg00444.html Besides that, thanks Hui for the great work, and thanks to everyone that reviewed! There was great interest when we presented Eclipse with Reverse debugging (using PRecord) at EclipseCon. I am very glad GDB 7.0 will have this great feature! We're presenting again at the GCC summit and at the Linux Symposium. Maybe we'll see some of you there. Thanks again Marc ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-04-28 13:50 ` Marc Khouzam @ 2009-04-28 15:15 ` Hui Zhu 0 siblings, 0 replies; 17+ messages in thread From: Hui Zhu @ 2009-04-28 15:15 UTC (permalink / raw) To: Marc Khouzam Cc: Pedro Alves, Mark Kettenis, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, paawan1982, gdb-patches On Tue, Apr 28, 2009 at 21:49, Marc Khouzam <marc.khouzam@ericsson.com> wrote: >> -----Original Message----- >> From: Hui Zhu [mailto:teawater@gmail.com] >> Sent: Tuesday, April 28, 2009 6:24 AM >> To: Pedro Alves; Mark Kettenis; Marc Khouzam; Michael Snyder; >> Thiago Jung Bauermann; Eli Zaretskii; paawan1982@yahoo.com >> Cc: gdb-patches@sourceware.org >> Subject: Re: [RFA] Submit process record and replay fourth time, 0/8 >> >> Hi guys, >> >> All of the patches of process record was approved by Pedro and Eli. >> The attachment is the compress for all the patches of precord. >> I will check it in 2009-04-30. >> >> Thanks, >> Hui > > This is great news! > > I believe there are still three minor patches that haven't been approved > yet. Those caused bugs in Reverse execution: > > http://sourceware.org/ml/gdb-patches/2009-03/msg00428.html > http://sourceware.org/ml/gdb-patches/2009-03/msg00005.html > http://sourceware.org/ml/gdb-patches/2009-01/msg00444.html I had told with Michael about them. I think all of them will be done before branch day. > > Besides that, thanks Hui for the great work, and thanks to everyone that > reviewed! > You are welcome. :) > There was great interest when we presented Eclipse with Reverse > debugging > (using PRecord) at EclipseCon. I am very glad GDB 7.0 will have this > great feature! > Thanks to your work at EclipseCon and reverse debug. :) Thanks, Hui ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-03-21 15:59 [RFA] Submit process record and replay fourth time, 0/8 Hui Zhu 2009-03-25 9:02 ` Hui Zhu @ 2009-03-30 8:35 ` Hui Zhu 2009-03-30 14:28 ` Marc Khouzam 2009-04-01 4:53 ` Hui Zhu 1 sibling, 2 replies; 17+ messages in thread From: Hui Zhu @ 2009-03-30 8:35 UTC (permalink / raw) To: Pedro Alves, Marc Khouzam, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, Mark Kettenis Cc: gdb-patches Hi guys, I am not sure your are reviewing the p record patches or done. Do you think all of them are ok to in? :) Thanks, Hui On Sat, Mar 21, 2009 at 23:58, Hui Zhu <teawater@gmail.com> wrote: > Hi guys, > > After third time submit, there are a lot of change with process record > and replay. So I submit fourth time to make it clear to review. > > For this time, Most of changes were updated follow cvs head and a lot > of format fixes. Patch for target.c was removed. Record.c was > updated a lot of parts according to the ideas of Pedro (Much > appreciated). > Thanks for help of everybody in the maillist. > > Process record and replay make gdb can record inferior execute log and > replay (include reverse debug). > Now, it support I386-Linux single-thread inferior native debug. > > I've divided this patch into eight sections, for ease of review. > They group as: > 1) Architecture support layer (gdbarch.sh, gdbarch.c, gbarch.h). > 2) New stratum of strata in target layer (target.h). > 3) Process record and replay target (record.c, record.h, Makefile.in). > 4) Process record and replay for Linux (linux-record.c, > linux-record.h, Makefile.in, configure.tgt). > 5) Event handling (infrun.c). > 6) Intel 386 target-dependent stuff (i386-tdep.c, i386-tdep.h). > 7) Target-dependent code for GNU/Linux i386 (i386-linux-tdep.c). > 8) User interface and documentation. > > For the NEWS: > * Process record and replay > > In a architecture environment that supports ``process record and > replay'', ``process record and replay'' target can record a log of > the process execution, and replay it with both forward and reverse > execute commands. > > These patches be tested with testsuite gdb.twreverse in branch > reverse-20081226-branch. > > Attachment is the compressed patches package to make get all patches easy. > > Thanks, > Hui > ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [RFA] Submit process record and replay fourth time, 0/8 2009-03-30 8:35 ` Hui Zhu @ 2009-03-30 14:28 ` Marc Khouzam 2009-03-30 15:29 ` Hui Zhu 2009-04-01 4:53 ` Hui Zhu 1 sibling, 1 reply; 17+ messages in thread From: Marc Khouzam @ 2009-03-30 14:28 UTC (permalink / raw) To: Hui Zhu, Pedro Alves, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, Mark Kettenis Cc: gdb-patches Hi Hui, as you know, I am a big fan of your RecordAndReplay enhancements. In fact, I just demoed it at EclipseCon to show how we can do Reverse Debugging in the CDT. People were very very interested! However, I think there are still a few bugs. These bugs may be hard to notice when working from the command line, but when working in Eclipse they can be seen easily. Those bugs are mostly unexpected behavior such as jumping too far backwards. They also happen more easily when using a program that has a bit of complexity. For example, the recursive bug that I found last week. Do you have access to eclipse? We can work together to have you try the reverse debugging that I added to CDT, so that you can work with your patches more intensely and test them even better. I would really like to see your patches in GDB 7.0, so maybe using Eclipse to test it can help move forward. What do you think? Marc > -----Original Message----- > From: Hui Zhu [mailto:teawater@gmail.com] > Sent: Monday, March 30, 2009 1:34 AM > To: Pedro Alves; Marc Khouzam; Michael Snyder; Thiago Jung > Bauermann; Eli Zaretskii; Mark Kettenis > Cc: gdb-patches@sourceware.org > Subject: Re: [RFA] Submit process record and replay fourth time, 0/8 > > Hi guys, > > I am not sure your are reviewing the p record patches or done. > > Do you think all of them are ok to in? :) > > > Thanks, > Hui > > > On Sat, Mar 21, 2009 at 23:58, Hui Zhu <teawater@gmail.com> wrote: > > Hi guys, > > > > After third time submit, there are a lot of change with > process record > > and replay. So I submit fourth time to make it clear to review. > > > > For this time, Most of changes were updated follow cvs head > and a lot > > of format fixes. Patch for target.c was removed. Record.c was > > updated a lot of parts according to the ideas of Pedro (Much > > appreciated). > > Thanks for help of everybody in the maillist. > > > > Process record and replay make gdb can record inferior > execute log and > > replay (include reverse debug). > > Now, it support I386-Linux single-thread inferior native debug. > > > > I've divided this patch into eight sections, for ease of review. > > They group as: > > 1) Architecture support layer (gdbarch.sh, gdbarch.c, gbarch.h). > > 2) New stratum of strata in target layer (target.h). > > 3) Process record and replay target (record.c, record.h, > Makefile.in). > > 4) Process record and replay for Linux (linux-record.c, > > linux-record.h, Makefile.in, configure.tgt). > > 5) Event handling (infrun.c). > > 6) Intel 386 target-dependent stuff (i386-tdep.c, i386-tdep.h). > > 7) Target-dependent code for GNU/Linux i386 (i386-linux-tdep.c). > > 8) User interface and documentation. > > > > For the NEWS: > > * Process record and replay > > > > In a architecture environment that supports ``process record and > > replay'', ``process record and replay'' target can record a log of > > the process execution, and replay it with both forward and reverse > > execute commands. > > > > These patches be tested with testsuite gdb.twreverse in branch > > reverse-20081226-branch. > > > > Attachment is the compressed patches package to make get > all patches easy. > > > > Thanks, > > Hui > > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-03-30 14:28 ` Marc Khouzam @ 2009-03-30 15:29 ` Hui Zhu 2009-03-30 15:33 ` Marc Khouzam 0 siblings, 1 reply; 17+ messages in thread From: Hui Zhu @ 2009-03-30 15:29 UTC (permalink / raw) To: Marc Khouzam Cc: Pedro Alves, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, Mark Kettenis, gdb-patches Hi Marc, I think most of issue that you got is about the reverse debug control part. This is not in the p record patches. The reverse debug include reverse debug control part already in cvs-head. For example, the 3 bugs that you sent to maillist are all for reverse debug control part. But not for p record. Process record just a target that support reverse debug function. It depend on reverse debug function. Actually, process record target was designed and developed together with reverse debug (Michael and me). And I think this is a good reason for let process record in now. Reverse debug function had already checked in cvs-head a lot of month. It will have a lot of customers after 7.0 release. I think it need a big and clear test. Now, remote target support reverse debug in cvs-head. The gdb stubs support it are vmware, simics and gdbreplay. So, just process record can use reverse debug in host directly. And there is a testsuite for reverse debug and process record called gdb.twreverse (This a temp name) in branch reverse-20081226-branch. It can be very easy to porting to cvs-head. And we can add more test (include for MI and eclipse) to increase the testsuit, p record and reverse debug. So, I think let process record in can help move forward. :) Thanks, Hui On Mon, Mar 30, 2009 at 21:50, Marc Khouzam <marc.khouzam@ericsson.com> wrote: > Hi Hui, > > as you know, I am a big fan of your RecordAndReplay enhancements. > In fact, I just demoed it at EclipseCon to show how we can do Reverse > Debugging in the CDT. People were very very interested! > > However, I think there are still a few bugs. These bugs may be hard > to notice when working from the command line, but when working in Eclipse > they can be seen easily. Those bugs are mostly unexpected behavior such > as jumping too far backwards. They also happen more easily when using > a program that has a bit of complexity. For example, the recursive > bug that I found last week. > > Do you have access to eclipse? We can work together to have you try > the reverse debugging that I added to CDT, so that you can work with > your patches more intensely and test them even better. > > I would really like to see your patches in GDB 7.0, so maybe using > Eclipse to test it can help move forward. What do you think? > > Marc > > >> -----Original Message----- >> From: Hui Zhu [mailto:teawater@gmail.com] >> Sent: Monday, March 30, 2009 1:34 AM >> To: Pedro Alves; Marc Khouzam; Michael Snyder; Thiago Jung >> Bauermann; Eli Zaretskii; Mark Kettenis >> Cc: gdb-patches@sourceware.org >> Subject: Re: [RFA] Submit process record and replay fourth time, 0/8 >> >> Hi guys, >> >> I am not sure your are reviewing the p record patches or done. >> >> Do you think all of them are ok to in? :) >> >> >> Thanks, >> Hui >> >> >> On Sat, Mar 21, 2009 at 23:58, Hui Zhu <teawater@gmail.com> wrote: >> > Hi guys, >> > >> > After third time submit, there are a lot of change with >> process record >> > and replay. So I submit fourth time to make it clear to review. >> > >> > For this time, Most of changes were updated follow cvs head >> and a lot >> > of format fixes. Patch for target.c was removed. Record.c was >> > updated a lot of parts according to the ideas of Pedro (Much >> > appreciated). >> > Thanks for help of everybody in the maillist. >> > >> > Process record and replay make gdb can record inferior >> execute log and >> > replay (include reverse debug). >> > Now, it support I386-Linux single-thread inferior native debug. >> > >> > I've divided this patch into eight sections, for ease of review. >> > They group as: >> > 1) Architecture support layer (gdbarch.sh, gdbarch.c, gbarch.h). >> > 2) New stratum of strata in target layer (target.h). >> > 3) Process record and replay target (record.c, record.h, >> Makefile.in). >> > 4) Process record and replay for Linux (linux-record.c, >> > linux-record.h, Makefile.in, configure.tgt). >> > 5) Event handling (infrun.c). >> > 6) Intel 386 target-dependent stuff (i386-tdep.c, i386-tdep.h). >> > 7) Target-dependent code for GNU/Linux i386 (i386-linux-tdep.c). >> > 8) User interface and documentation. >> > >> > For the NEWS: >> > * Process record and replay >> > >> > In a architecture environment that supports ``process record and >> > replay'', ``process record and replay'' target can record a log of >> > the process execution, and replay it with both forward and reverse >> > execute commands. >> > >> > These patches be tested with testsuite gdb.twreverse in branch >> > reverse-20081226-branch. >> > >> > Attachment is the compressed patches package to make get >> all patches easy. >> > >> > Thanks, >> > Hui >> > >> > ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [RFA] Submit process record and replay fourth time, 0/8 2009-03-30 15:29 ` Hui Zhu @ 2009-03-30 15:33 ` Marc Khouzam 2009-03-30 15:34 ` Hui Zhu 0 siblings, 1 reply; 17+ messages in thread From: Marc Khouzam @ 2009-03-30 15:33 UTC (permalink / raw) To: Hui Zhu Cc: Pedro Alves, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, Mark Kettenis, gdb-patches I see. I've only tried reverse with your patches so I don't know if the bugs I see also show up when using vmware, simics or gdbreplay... But if those bugs are already in HEAD, it would be good if we could get them fixed before 7.0. If anyone wants to try reverse with Eclipse to do more thourough testing, I'll help. Marc > -----Original Message----- > From: gdb-patches-owner@sourceware.org > [mailto:gdb-patches-owner@sourceware.org] On Behalf Of Hui Zhu > Sent: Monday, March 30, 2009 11:17 AM > To: Marc Khouzam > Cc: Pedro Alves; Michael Snyder; Thiago Jung Bauermann; Eli > Zaretskii; Mark Kettenis; gdb-patches@sourceware.org > Subject: Re: [RFA] Submit process record and replay fourth time, 0/8 > > Hi Marc, > > I think most of issue that you got is about the reverse debug control > part. This is not in the p record patches. The reverse debug include > reverse debug control part already in cvs-head. > For example, the 3 bugs that you sent to maillist are all for reverse > debug control part. But not for p record. > > Process record just a target that support reverse debug function. It > depend on reverse debug function. > Actually, process record target was designed and developed together > with reverse debug (Michael and me). > > And I think this is a good reason for let process record in now. > Reverse debug function had already checked in cvs-head a lot of month. > It will have a lot of customers after 7.0 release. I think it need a > big and clear test. > Now, remote target support reverse debug in cvs-head. The gdb stubs > support it are vmware, simics and gdbreplay. > So, just process record can use reverse debug in host directly. And > there is a testsuite for reverse debug and process record called > gdb.twreverse (This a temp name) in branch reverse-20081226-branch. > It can be very easy to porting to cvs-head. And we can add more test > (include for MI and eclipse) to increase the testsuit, p record and > reverse debug. > > So, I think let process record in can help move forward. :) > > Thanks, > Hui > > > > On Mon, Mar 30, 2009 at 21:50, Marc Khouzam > <marc.khouzam@ericsson.com> wrote: > > Hi Hui, > > > > as you know, I am a big fan of your RecordAndReplay enhancements. > > In fact, I just demoed it at EclipseCon to show how we can > do Reverse > > Debugging in the CDT. People were very very interested! > > > > However, I think there are still a few bugs. These bugs may be hard > > to notice when working from the command line, but when > working in Eclipse > > they can be seen easily. Those bugs are mostly unexpected > behavior such > > as jumping too far backwards. They also happen more easily > when using > > a program that has a bit of complexity. For example, the recursive > > bug that I found last week. > > > > Do you have access to eclipse? We can work together to have you try > > the reverse debugging that I added to CDT, so that you can work with > > your patches more intensely and test them even better. > > > > I would really like to see your patches in GDB 7.0, so maybe using > > Eclipse to test it can help move forward. What do you think? > > > > Marc > > > > > >> -----Original Message----- > >> From: Hui Zhu [mailto:teawater@gmail.com] > >> Sent: Monday, March 30, 2009 1:34 AM > >> To: Pedro Alves; Marc Khouzam; Michael Snyder; Thiago Jung > >> Bauermann; Eli Zaretskii; Mark Kettenis > >> Cc: gdb-patches@sourceware.org > >> Subject: Re: [RFA] Submit process record and replay fourth > time, 0/8 > >> > >> Hi guys, > >> > >> I am not sure your are reviewing the p record patches or done. > >> > >> Do you think all of them are ok to in? :) > >> > >> > >> Thanks, > >> Hui > >> > >> > >> On Sat, Mar 21, 2009 at 23:58, Hui Zhu <teawater@gmail.com> wrote: > >> > Hi guys, > >> > > >> > After third time submit, there are a lot of change with > >> process record > >> > and replay. So I submit fourth time to make it clear to review. > >> > > >> > For this time, Most of changes were updated follow cvs head > >> and a lot > >> > of format fixes. Patch for target.c was removed. Record.c was > >> > updated a lot of parts according to the ideas of Pedro (Much > >> > appreciated). > >> > Thanks for help of everybody in the maillist. > >> > > >> > Process record and replay make gdb can record inferior > >> execute log and > >> > replay (include reverse debug). > >> > Now, it support I386-Linux single-thread inferior native debug. > >> > > >> > I've divided this patch into eight sections, for ease of review. > >> > They group as: > >> > 1) Architecture support layer (gdbarch.sh, gdbarch.c, gbarch.h). > >> > 2) New stratum of strata in target layer (target.h). > >> > 3) Process record and replay target (record.c, record.h, > >> Makefile.in). > >> > 4) Process record and replay for Linux (linux-record.c, > >> > linux-record.h, Makefile.in, configure.tgt). > >> > 5) Event handling (infrun.c). > >> > 6) Intel 386 target-dependent stuff (i386-tdep.c, i386-tdep.h). > >> > 7) Target-dependent code for GNU/Linux i386 (i386-linux-tdep.c). > >> > 8) User interface and documentation. > >> > > >> > For the NEWS: > >> > * Process record and replay > >> > > >> > In a architecture environment that supports ``process record and > >> > replay'', ``process record and replay'' target can > record a log of > >> > the process execution, and replay it with both forward > and reverse > >> > execute commands. > >> > > >> > These patches be tested with testsuite gdb.twreverse in branch > >> > reverse-20081226-branch. > >> > > >> > Attachment is the compressed patches package to make get > >> all patches easy. > >> > > >> > Thanks, > >> > Hui > >> > > >> > > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-03-30 15:33 ` Marc Khouzam @ 2009-03-30 15:34 ` Hui Zhu 2009-03-30 15:52 ` Marc Khouzam 0 siblings, 1 reply; 17+ messages in thread From: Hui Zhu @ 2009-03-30 15:34 UTC (permalink / raw) To: Marc Khouzam Cc: Pedro Alves, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, Mark Kettenis, gdb-patches Hi Marc, Could you send me the bugs that you got? If it just can reproduce in Eclipse, I will try it. About these bugs, I think we need deal with them one by one and step by step like before. :) Thanks, Hui On Mon, Mar 30, 2009 at 23:28, Marc Khouzam <marc.khouzam@ericsson.com> wrote: > I see. I've only tried reverse with your patches so I don't know > if the bugs I see also show up when using vmware, simics or gdbreplay... > But if those bugs are already in HEAD, it would be good if we could > get them fixed before 7.0. > > If anyone wants to try reverse with Eclipse to do more thourough testing, > I'll help. > > Marc > > >> -----Original Message----- >> From: gdb-patches-owner@sourceware.org >> [mailto:gdb-patches-owner@sourceware.org] On Behalf Of Hui Zhu >> Sent: Monday, March 30, 2009 11:17 AM >> To: Marc Khouzam >> Cc: Pedro Alves; Michael Snyder; Thiago Jung Bauermann; Eli >> Zaretskii; Mark Kettenis; gdb-patches@sourceware.org >> Subject: Re: [RFA] Submit process record and replay fourth time, 0/8 >> >> Hi Marc, >> >> I think most of issue that you got is about the reverse debug control >> part. This is not in the p record patches. The reverse debug include >> reverse debug control part already in cvs-head. >> For example, the 3 bugs that you sent to maillist are all for reverse >> debug control part. But not for p record. >> >> Process record just a target that support reverse debug function. It >> depend on reverse debug function. >> Actually, process record target was designed and developed together >> with reverse debug (Michael and me). >> >> And I think this is a good reason for let process record in now. >> Reverse debug function had already checked in cvs-head a lot of month. >> It will have a lot of customers after 7.0 release. I think it need a >> big and clear test. >> Now, remote target support reverse debug in cvs-head. The gdb stubs >> support it are vmware, simics and gdbreplay. >> So, just process record can use reverse debug in host directly. And >> there is a testsuite for reverse debug and process record called >> gdb.twreverse (This a temp name) in branch reverse-20081226-branch. >> It can be very easy to porting to cvs-head. And we can add more test >> (include for MI and eclipse) to increase the testsuit, p record and >> reverse debug. >> >> So, I think let process record in can help move forward. :) >> >> Thanks, >> Hui >> >> >> >> On Mon, Mar 30, 2009 at 21:50, Marc Khouzam >> <marc.khouzam@ericsson.com> wrote: >> > Hi Hui, >> > >> > as you know, I am a big fan of your RecordAndReplay enhancements. >> > In fact, I just demoed it at EclipseCon to show how we can >> do Reverse >> > Debugging in the CDT. People were very very interested! >> > >> > However, I think there are still a few bugs. These bugs may be hard >> > to notice when working from the command line, but when >> working in Eclipse >> > they can be seen easily. Those bugs are mostly unexpected >> behavior such >> > as jumping too far backwards. They also happen more easily >> when using >> > a program that has a bit of complexity. For example, the recursive >> > bug that I found last week. >> > >> > Do you have access to eclipse? We can work together to have you try >> > the reverse debugging that I added to CDT, so that you can work with >> > your patches more intensely and test them even better. >> > >> > I would really like to see your patches in GDB 7.0, so maybe using >> > Eclipse to test it can help move forward. What do you think? >> > >> > Marc >> > >> > >> >> -----Original Message----- >> >> From: Hui Zhu [mailto:teawater@gmail.com] >> >> Sent: Monday, March 30, 2009 1:34 AM >> >> To: Pedro Alves; Marc Khouzam; Michael Snyder; Thiago Jung >> >> Bauermann; Eli Zaretskii; Mark Kettenis >> >> Cc: gdb-patches@sourceware.org >> >> Subject: Re: [RFA] Submit process record and replay fourth >> time, 0/8 >> >> >> >> Hi guys, >> >> >> >> I am not sure your are reviewing the p record patches or done. >> >> >> >> Do you think all of them are ok to in? :) >> >> >> >> >> >> Thanks, >> >> Hui >> >> >> >> >> >> On Sat, Mar 21, 2009 at 23:58, Hui Zhu <teawater@gmail.com> wrote: >> >> > Hi guys, >> >> > >> >> > After third time submit, there are a lot of change with >> >> process record >> >> > and replay. So I submit fourth time to make it clear to review. >> >> > >> >> > For this time, Most of changes were updated follow cvs head >> >> and a lot >> >> > of format fixes. Patch for target.c was removed. Record.c was >> >> > updated a lot of parts according to the ideas of Pedro (Much >> >> > appreciated). >> >> > Thanks for help of everybody in the maillist. >> >> > >> >> > Process record and replay make gdb can record inferior >> >> execute log and >> >> > replay (include reverse debug). >> >> > Now, it support I386-Linux single-thread inferior native debug. >> >> > >> >> > I've divided this patch into eight sections, for ease of review. >> >> > They group as: >> >> > 1) Architecture support layer (gdbarch.sh, gdbarch.c, gbarch.h). >> >> > 2) New stratum of strata in target layer (target.h). >> >> > 3) Process record and replay target (record.c, record.h, >> >> Makefile.in). >> >> > 4) Process record and replay for Linux (linux-record.c, >> >> > linux-record.h, Makefile.in, configure.tgt). >> >> > 5) Event handling (infrun.c). >> >> > 6) Intel 386 target-dependent stuff (i386-tdep.c, i386-tdep.h). >> >> > 7) Target-dependent code for GNU/Linux i386 (i386-linux-tdep.c). >> >> > 8) User interface and documentation. >> >> > >> >> > For the NEWS: >> >> > * Process record and replay >> >> > >> >> > In a architecture environment that supports ``process record and >> >> > replay'', ``process record and replay'' target can >> record a log of >> >> > the process execution, and replay it with both forward >> and reverse >> >> > execute commands. >> >> > >> >> > These patches be tested with testsuite gdb.twreverse in branch >> >> > reverse-20081226-branch. >> >> > >> >> > Attachment is the compressed patches package to make get >> >> all patches easy. >> >> > >> >> > Thanks, >> >> > Hui >> >> > >> >> >> > >> > ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [RFA] Submit process record and replay fourth time, 0/8 2009-03-30 15:34 ` Hui Zhu @ 2009-03-30 15:52 ` Marc Khouzam 0 siblings, 0 replies; 17+ messages in thread From: Marc Khouzam @ 2009-03-30 15:52 UTC (permalink / raw) To: Hui Zhu Cc: Pedro Alves, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, Mark Kettenis, gdb-patches > Could you send me the bugs that you got? If it just can reproduce in > Eclipse, I will try it. > > About these bugs, I think we need deal with them one by one and step > by step like before. :) I was suggesting using Eclipse, because it takes me time to isolate a bug and reproduce it in a smaller, command-line example. But when I have a little time, I will send whatever I find Marc > > Thanks, > Hui > > On Mon, Mar 30, 2009 at 23:28, Marc Khouzam > <marc.khouzam@ericsson.com> wrote: > > I see. I've only tried reverse with your patches so I don't know > > if the bugs I see also show up when using vmware, simics or > gdbreplay... > > But if those bugs are already in HEAD, it would be good if we could > > get them fixed before 7.0. > > > > If anyone wants to try reverse with Eclipse to do more > thourough testing, > > I'll help. > > > > Marc > > > > > >> -----Original Message----- > >> From: gdb-patches-owner@sourceware.org > >> [mailto:gdb-patches-owner@sourceware.org] On Behalf Of Hui Zhu > >> Sent: Monday, March 30, 2009 11:17 AM > >> To: Marc Khouzam > >> Cc: Pedro Alves; Michael Snyder; Thiago Jung Bauermann; Eli > >> Zaretskii; Mark Kettenis; gdb-patches@sourceware.org > >> Subject: Re: [RFA] Submit process record and replay fourth > time, 0/8 > >> > >> Hi Marc, > >> > >> I think most of issue that you got is about the reverse > debug control > >> part. This is not in the p record patches. The reverse > debug include > >> reverse debug control part already in cvs-head. > >> For example, the 3 bugs that you sent to maillist are all > for reverse > >> debug control part. But not for p record. > >> > >> Process record just a target that support reverse debug > function. It > >> depend on reverse debug function. > >> Actually, process record target was designed and developed together > >> with reverse debug (Michael and me). > >> > >> And I think this is a good reason for let process record in now. > >> Reverse debug function had already checked in cvs-head a > lot of month. > >> It will have a lot of customers after 7.0 release. I > think it need a > >> big and clear test. > >> Now, remote target support reverse debug in cvs-head. The > gdb stubs > >> support it are vmware, simics and gdbreplay. > >> So, just process record can use reverse debug in host > directly. And > >> there is a testsuite for reverse debug and process record called > >> gdb.twreverse (This a temp name) in branch reverse-20081226-branch. > >> It can be very easy to porting to cvs-head. And we can > add more test > >> (include for MI and eclipse) to increase the testsuit, p record and > >> reverse debug. > >> > >> So, I think let process record in can help move forward. :) > >> > >> Thanks, > >> Hui > >> > >> > >> > >> On Mon, Mar 30, 2009 at 21:50, Marc Khouzam > >> <marc.khouzam@ericsson.com> wrote: > >> > Hi Hui, > >> > > >> > as you know, I am a big fan of your RecordAndReplay enhancements. > >> > In fact, I just demoed it at EclipseCon to show how we can > >> do Reverse > >> > Debugging in the CDT. People were very very interested! > >> > > >> > However, I think there are still a few bugs. These bugs > may be hard > >> > to notice when working from the command line, but when > >> working in Eclipse > >> > they can be seen easily. Those bugs are mostly unexpected > >> behavior such > >> > as jumping too far backwards. They also happen more easily > >> when using > >> > a program that has a bit of complexity. For example, > the recursive > >> > bug that I found last week. > >> > > >> > Do you have access to eclipse? We can work together to > have you try > >> > the reverse debugging that I added to CDT, so that you > can work with > >> > your patches more intensely and test them even better. > >> > > >> > I would really like to see your patches in GDB 7.0, so > maybe using > >> > Eclipse to test it can help move forward. What do you think? > >> > > >> > Marc > >> > > >> > > >> >> -----Original Message----- > >> >> From: Hui Zhu [mailto:teawater@gmail.com] > >> >> Sent: Monday, March 30, 2009 1:34 AM > >> >> To: Pedro Alves; Marc Khouzam; Michael Snyder; Thiago Jung > >> >> Bauermann; Eli Zaretskii; Mark Kettenis > >> >> Cc: gdb-patches@sourceware.org > >> >> Subject: Re: [RFA] Submit process record and replay fourth > >> time, 0/8 > >> >> > >> >> Hi guys, > >> >> > >> >> I am not sure your are reviewing the p record patches or done. > >> >> > >> >> Do you think all of them are ok to in? :) > >> >> > >> >> > >> >> Thanks, > >> >> Hui > >> >> > >> >> > >> >> On Sat, Mar 21, 2009 at 23:58, Hui Zhu > <teawater@gmail.com> wrote: > >> >> > Hi guys, > >> >> > > >> >> > After third time submit, there are a lot of change with > >> >> process record > >> >> > and replay. So I submit fourth time to make it clear > to review. > >> >> > > >> >> > For this time, Most of changes were updated follow cvs head > >> >> and a lot > >> >> > of format fixes. Patch for target.c was removed. > Record.c was > >> >> > updated a lot of parts according to the ideas of Pedro (Much > >> >> > appreciated). > >> >> > Thanks for help of everybody in the maillist. > >> >> > > >> >> > Process record and replay make gdb can record inferior > >> >> execute log and > >> >> > replay (include reverse debug). > >> >> > Now, it support I386-Linux single-thread inferior > native debug. > >> >> > > >> >> > I've divided this patch into eight sections, for ease > of review. > >> >> > They group as: > >> >> > 1) Architecture support layer (gdbarch.sh, gdbarch.c, > gbarch.h). > >> >> > 2) New stratum of strata in target layer (target.h). > >> >> > 3) Process record and replay target (record.c, record.h, > >> >> Makefile.in). > >> >> > 4) Process record and replay for Linux (linux-record.c, > >> >> > linux-record.h, Makefile.in, configure.tgt). > >> >> > 5) Event handling (infrun.c). > >> >> > 6) Intel 386 target-dependent stuff (i386-tdep.c, > i386-tdep.h). > >> >> > 7) Target-dependent code for GNU/Linux i386 > (i386-linux-tdep.c). > >> >> > 8) User interface and documentation. > >> >> > > >> >> > For the NEWS: > >> >> > * Process record and replay > >> >> > > >> >> > In a architecture environment that supports > ``process record and > >> >> > replay'', ``process record and replay'' target can > >> record a log of > >> >> > the process execution, and replay it with both forward > >> and reverse > >> >> > execute commands. > >> >> > > >> >> > These patches be tested with testsuite gdb.twreverse in branch > >> >> > reverse-20081226-branch. > >> >> > > >> >> > Attachment is the compressed patches package to make get > >> >> all patches easy. > >> >> > > >> >> > Thanks, > >> >> > Hui > >> >> > > >> >> > >> > > >> > > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-03-30 8:35 ` Hui Zhu 2009-03-30 14:28 ` Marc Khouzam @ 2009-04-01 4:53 ` Hui Zhu 2009-04-02 12:48 ` Hui Zhu 1 sibling, 1 reply; 17+ messages in thread From: Hui Zhu @ 2009-04-01 4:53 UTC (permalink / raw) To: Pedro Alves, Marc Khouzam, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, Mark Kettenis Cc: gdb-patches Hi guys, Could you please help me with it? Thanks a lot. :) Hui On Mon, Mar 30, 2009 at 13:33, Hui Zhu <teawater@gmail.com> wrote: > Hi guys, > > I am not sure your are reviewing the p record patches or done. > > Do you think all of them are ok to in? :) > > > Thanks, > Hui > > > On Sat, Mar 21, 2009 at 23:58, Hui Zhu <teawater@gmail.com> wrote: >> Hi guys, >> >> After third time submit, there are a lot of change with process record >> and replay. So I submit fourth time to make it clear to review. >> >> For this time, Most of changes were updated follow cvs head and a lot >> of format fixes. Patch for target.c was removed. Record.c was >> updated a lot of parts according to the ideas of Pedro (Much >> appreciated). >> Thanks for help of everybody in the maillist. >> >> Process record and replay make gdb can record inferior execute log and >> replay (include reverse debug). >> Now, it support I386-Linux single-thread inferior native debug. >> >> I've divided this patch into eight sections, for ease of review. >> They group as: >> 1) Architecture support layer (gdbarch.sh, gdbarch.c, gbarch.h). >> 2) New stratum of strata in target layer (target.h). >> 3) Process record and replay target (record.c, record.h, Makefile.in). >> 4) Process record and replay for Linux (linux-record.c, >> linux-record.h, Makefile.in, configure.tgt). >> 5) Event handling (infrun.c). >> 6) Intel 386 target-dependent stuff (i386-tdep.c, i386-tdep.h). >> 7) Target-dependent code for GNU/Linux i386 (i386-linux-tdep.c). >> 8) User interface and documentation. >> >> For the NEWS: >> * Process record and replay >> >> In a architecture environment that supports ``process record and >> replay'', ``process record and replay'' target can record a log of >> the process execution, and replay it with both forward and reverse >> execute commands. >> >> These patches be tested with testsuite gdb.twreverse in branch >> reverse-20081226-branch. >> >> Attachment is the compressed patches package to make get all patches easy. >> >> Thanks, >> Hui >> > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [RFA] Submit process record and replay fourth time, 0/8 2009-04-01 4:53 ` Hui Zhu @ 2009-04-02 12:48 ` Hui Zhu 0 siblings, 0 replies; 17+ messages in thread From: Hui Zhu @ 2009-04-02 12:48 UTC (permalink / raw) To: Pedro Alves, Marc Khouzam, Michael Snyder, Thiago Jung Bauermann, Eli Zaretskii, Mark Kettenis Cc: gdb-patches Hi guys, Could you please help me with it? Thanks a lot. :) Hui On Wed, Apr 1, 2009 at 12:53, Hui Zhu <teawater@gmail.com> wrote: > Hi guys, > > Could you please help me with it? > Thanks a lot. :) > > Hui > > On Mon, Mar 30, 2009 at 13:33, Hui Zhu <teawater@gmail.com> wrote: >> Hi guys, >> >> I am not sure your are reviewing the p record patches or done. >> >> Do you think all of them are ok to in? :) >> >> >> Thanks, >> Hui >> >> >> On Sat, Mar 21, 2009 at 23:58, Hui Zhu <teawater@gmail.com> wrote: >>> Hi guys, >>> >>> After third time submit, there are a lot of change with process record >>> and replay. So I submit fourth time to make it clear to review. >>> >>> For this time, Most of changes were updated follow cvs head and a lot >>> of format fixes. Patch for target.c was removed. Record.c was >>> updated a lot of parts according to the ideas of Pedro (Much >>> appreciated). >>> Thanks for help of everybody in the maillist. >>> >>> Process record and replay make gdb can record inferior execute log and >>> replay (include reverse debug). >>> Now, it support I386-Linux single-thread inferior native debug. >>> >>> I've divided this patch into eight sections, for ease of review. >>> They group as: >>> 1) Architecture support layer (gdbarch.sh, gdbarch.c, gbarch.h). >>> 2) New stratum of strata in target layer (target.h). >>> 3) Process record and replay target (record.c, record.h, Makefile.in). >>> 4) Process record and replay for Linux (linux-record.c, >>> linux-record.h, Makefile.in, configure.tgt). >>> 5) Event handling (infrun.c). >>> 6) Intel 386 target-dependent stuff (i386-tdep.c, i386-tdep.h). >>> 7) Target-dependent code for GNU/Linux i386 (i386-linux-tdep.c). >>> 8) User interface and documentation. >>> >>> For the NEWS: >>> * Process record and replay >>> >>> In a architecture environment that supports ``process record and >>> replay'', ``process record and replay'' target can record a log of >>> the process execution, and replay it with both forward and reverse >>> execute commands. >>> >>> These patches be tested with testsuite gdb.twreverse in branch >>> reverse-20081226-branch. >>> >>> Attachment is the compressed patches package to make get all patches easy. >>> >>> Thanks, >>> Hui >>> >> > ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2009-04-28 15:15 UTC | newest] Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-03-21 15:59 [RFA] Submit process record and replay fourth time, 0/8 Hui Zhu 2009-03-25 9:02 ` Hui Zhu 2009-04-02 14:26 ` Pedro Alves 2009-04-15 16:56 ` Hui Zhu 2009-04-21 13:31 ` Pedro Alves 2009-04-22 9:03 ` Hui Zhu 2009-04-28 10:24 ` Hui Zhu 2009-04-28 13:50 ` Marc Khouzam 2009-04-28 15:15 ` Hui Zhu 2009-03-30 8:35 ` Hui Zhu 2009-03-30 14:28 ` Marc Khouzam 2009-03-30 15:29 ` Hui Zhu 2009-03-30 15:33 ` Marc Khouzam 2009-03-30 15:34 ` Hui Zhu 2009-03-30 15:52 ` Marc Khouzam 2009-04-01 4:53 ` Hui Zhu 2009-04-02 12:48 ` Hui Zhu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox