This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

reverse for GDB/MI


Hi,

I have looked at the new reverse functionality in GDB and I think that
it looks really good. I would like to see the reverse commands in the
GDB/MI interface as well. I have attached two patches with the same
purpose, to add reverse commands to the MI interface, as I am not sure
which one that is best.

/Tomas Holmberg
Index: gdb/mi/mi-cmds.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmds.c,v
retrieving revision 1.37
diff -c -p -r1.37 mi-cmds.c
*** gdb/mi/mi-cmds.c	17 Nov 2008 16:37:35 -0000	1.37
--- gdb/mi/mi-cmds.c	15 Dec 2008 09:54:10 -0000
*************** struct mi_cmd mi_cmds[] =
*** 70,75 ****
--- 70,81 ----
    { "exec-step", { NULL, 0 }, mi_cmd_exec_step},
    { "exec-step-instruction", { NULL, 0 }, mi_cmd_exec_step_instruction},
    { "exec-until", { "until", 1 }, NULL},
+   { "exec-reverse-continue", { "reverse-continue", 1 }, NULL},
+   { "exec-reverse-finish", { "reverse-finish", 1 }, NULL},
+   { "exec-reverse-next", { "reverse-next", 1 }, NULL},
+   { "exec-reverse-next-instruction", { "reverse-next-instruction", 1 }, NULL},
+   { "exec-reverse-step", { "reverse-step", 1 }, NULL},
+   { "exec-reverse-step-instruction", { "reverse-step-instruction", 1 }, NULL},
    { "file-clear", { NULL, 0 }, NULL },
    { "file-exec-and-symbols", { "file", 1 }, NULL },
    { "file-exec-file", { "exec-file", 1 }, NULL },
Index: gdb/mi/mi-cmds.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmds.c,v
retrieving revision 1.37
diff -c -p -r1.37 mi-cmds.c
*** gdb/mi/mi-cmds.c	17 Nov 2008 16:37:35 -0000	1.37
--- gdb/mi/mi-cmds.c	15 Dec 2008 09:57:08 -0000
*************** struct mi_cmd mi_cmds[] =
*** 70,75 ****
--- 70,81 ----
    { "exec-step", { NULL, 0 }, mi_cmd_exec_step},
    { "exec-step-instruction", { NULL, 0 }, mi_cmd_exec_step_instruction},
    { "exec-until", { "until", 1 }, NULL},
+   { "exec-reverse-continue", { NULL, 0 }, mi_cmd_exec_reverse_continue},
+   { "exec-reverse-finish", { NULL, 0 }, mi_cmd_exec_reverse_finish},
+   { "exec-reverse-next", { NULL, 0 }, mi_cmd_exec_reverse_next},
+   { "exec-reverse-next-instruction", { NULL, 0 }, mi_cmd_exec_reverse_next_instruction},
+   { "exec-reverse-step", { NULL, 0 }, mi_cmd_exec_reverse_step},
+   { "exec-reverse-step-instruction", { NULL, 0 }, mi_cmd_exec_reverse_step_instruction},
    { "file-clear", { NULL, 0 }, NULL },
    { "file-exec-and-symbols", { "file", 1 }, NULL },
    { "file-exec-file", { "exec-file", 1 }, NULL },
Index: gdb/mi/mi-cmds.h
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmds.h,v
retrieving revision 1.35
diff -c -p -r1.35 mi-cmds.h
*** gdb/mi/mi-cmds.h	17 Nov 2008 16:37:35 -0000	1.35
--- gdb/mi/mi-cmds.h	15 Dec 2008 09:57:08 -0000
*************** extern mi_cmd_argv_ftype mi_cmd_exec_ret
*** 59,64 ****
--- 59,70 ----
  extern mi_cmd_argv_ftype mi_cmd_exec_step;
  extern mi_cmd_argv_ftype mi_cmd_exec_step_instruction;
  extern mi_cmd_argv_ftype mi_cmd_exec_interrupt;
+ extern mi_cmd_argv_ftype mi_cmd_exec_reverse_continue;
+ extern mi_cmd_argv_ftype mi_cmd_exec_reverse_finish;
+ extern mi_cmd_argv_ftype mi_cmd_exec_reverse_next;
+ extern mi_cmd_argv_ftype mi_cmd_exec_reverse_next_instruction;
+ extern mi_cmd_argv_ftype mi_cmd_exec_reverse_step;
+ extern mi_cmd_argv_ftype mi_cmd_exec_reverse_step_instruction;
  extern mi_cmd_argv_ftype mi_cmd_file_list_exec_source_file;
  extern mi_cmd_argv_ftype mi_cmd_file_list_exec_source_files;
  extern mi_cmd_argv_ftype mi_cmd_gdb_exit;
Index: gdb/mi/mi-main.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-main.c,v
retrieving revision 1.139
diff -c -p -r1.139 mi-main.c
*** gdb/mi/mi-main.c	2 Dec 2008 15:52:15 -0000	1.139
--- gdb/mi/mi-main.c	15 Dec 2008 09:57:09 -0000
*************** mi_cmd_exec_interrupt (char *command, ch
*** 261,266 ****
--- 261,308 ----
      error ("Usage: -exec-interrupt [--all|--thread-group id]");
  }
  
+ void
+ mi_cmd_exec_reverse_continue (char *command, char **argv, int argc)
+ {
+   /* FIXME: Should call a libgdb function, not a cli wrapper.  */
+   mi_execute_async_cli_command ("reverse-continue", argv, argc);
+ }
+ 
+ void
+ mi_cmd_exec_reverse_finish (char *command, char **argv, int argc)
+ {
+   /* FIXME: Should call a libgdb function, not a cli wrapper.  */
+   mi_execute_async_cli_command ("reverse-finish", argv, argc);
+ }
+ 
+ void
+ mi_cmd_exec_reverse_next (char *command, char **argv, int argc)
+ {
+   /* FIXME: Should call a libgdb function, not a cli wrapper.  */
+   mi_execute_async_cli_command ("reverse-next", argv, argc);
+ }
+ 
+ void
+ mi_cmd_exec_reverse_next_instruction (char *command, char **argv, int argc)
+ {
+   /* FIXME: Should call a libgdb function, not a cli wrapper.  */
+   mi_execute_async_cli_command ("reverse-nexti", argv, argc);
+ }
+ 
+ void
+ mi_cmd_exec_reverse_step (char *command, char **argv, int argc)
+ {
+   /* FIXME: Should call a libgdb function, not a cli wrapper.  */
+   mi_execute_async_cli_command ("reverse-step", argv, argc);
+ }
+ 
+ void
+ mi_cmd_exec_reverse_step_instruction (char *command, char **argv, int argc)
+ {
+   /* FIXME: Should call a libgdb function, not a cli wrapper.  */
+   mi_execute_async_cli_command ("reverse-stepi", argv, argc);
+ }
+ 
  static int
  find_thread_of_process (struct thread_info *ti, void *p)
  {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]