This is the mail archive of the gdb-patches@sources.redhat.com 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]

Re: [PATCH] implements MI "-file-list-exec-sections" (improved patch)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I've got a new patch ready.
The format generated in the first patch was incorrect. It takes the target 
_stack_ into account by generatíng a list of target desciptions.
> I think your theory is right, and this is a good incremental approach.
> It's going to also need a test case and edits to the doco (assignment
> form sent).  Depending on how you stand on that front I might be able to
> juggle something.
Doc-changes included. I've also included some other doco-bug-fixes for the 
MI-input/output EBNF description. Should I make a separate patch?
Test case help appreciated :-)
>
> BTW, how are you using the output?
I'm writing a debugger frontend for GDB. If it works, it will be released as 
part of HT Editor 2.0 (hte.sf.net). Release next year or when Hurd is 
released :-)
>
> > +      ui_out_text(uiout, "\tEntry point: ");
>
> NB: Space before the paren.
Alright.

Stefan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAaU44EP9tKMRlxN8RAhDHAJ0dQrT/q0f0gjfMcZaU3uDd102sgQCdFmj6
bDm2IiPQ180MOp0G5HZNHVQ=
=vVDW
-----END PGP SIGNATURE-----
Index: corelow.c
===================================================================
RCS file: /cvs/src/src/gdb/corelow.c,v
retrieving revision 1.36
diff -u -3 -p -r1.36 corelow.c
--- corelow.c	28 Feb 2004 18:04:36 -0000	1.36
+++ corelow.c	30 Mar 2004 10:20:57 -0000
@@ -66,7 +66,7 @@ static struct core_fns *core_vec = NULL;
 
 struct gdbarch *core_gdbarch = NULL;
 
-static void core_files_info (struct target_ops *);
+static void core_files_info (struct target_ops *, struct ui_out *);
 
 #ifdef SOLIB_ADD
 static int solib_add_stub (void *);
@@ -511,9 +511,9 @@ get_core_registers (int regno)
 }
 
 static void
-core_files_info (struct target_ops *t)
+core_files_info (struct target_ops *t, struct ui_out *uiout)
 {
-  print_section_info (t, core_bfd);
+  print_section_info (t, core_bfd, uiout);
 }
 
 static LONGEST
Index: exec.c
===================================================================
RCS file: /cvs/src/src/gdb/exec.c,v
retrieving revision 1.36
diff -u -3 -p -r1.36 exec.c
--- exec.c	28 Feb 2004 18:04:37 -0000	1.36
+++ exec.c	30 Mar 2004 10:20:58 -0000
@@ -63,7 +63,7 @@ static void file_command (char *, int);
 
 static void set_section_command (char *, int);
 
-static void exec_files_info (struct target_ops *);
+static void exec_files_info (struct target_ops *, struct ui_out *);
 
 static int ignore (CORE_ADDR, char *);
 
@@ -521,47 +521,50 @@ xfer_memory (CORE_ADDR memaddr, char *my
 
 
 void
-print_section_info (struct target_ops *t, bfd *abfd)
+print_section_info (struct target_ops *t, bfd *abfd, struct ui_out *uiout)
 {
   struct section_table *p;
-  /* FIXME: "016l" is not wide enough when TARGET_ADDR_BIT > 64.  */
-  char *fmt = TARGET_ADDR_BIT <= 32 ? "08l" : "016l";
+  ui_out_text (uiout, "\t`");
+  ui_out_field_string (uiout, "filename", bfd_get_filename (abfd));
+  ui_out_text (uiout, "', ");
+
+  ui_out_wrap_hint (uiout, "        ");
+
+  ui_out_text (uiout, "file type ");
+  ui_out_field_string (uiout, "file-type", bfd_get_target (abfd));
+  ui_out_text (uiout, ".\n");
 
-  printf_filtered ("\t`%s', ", bfd_get_filename (abfd));
-  wrap_here ("        ");
-  printf_filtered ("file type %s.\n", bfd_get_target (abfd));
   if (abfd == exec_bfd)
     {
-      printf_filtered ("\tEntry point: ");
-      print_address_numeric (bfd_get_start_address (abfd), 1, gdb_stdout);
-      printf_filtered ("\n");
+      ui_out_text (uiout, "\tEntry point: ");
+      ui_out_field_core_addr (uiout, "target-entrypoint", bfd_get_start_address (abfd));
+      ui_out_text (uiout, "\n");
     }
+  ui_out_begin (uiout, ui_out_type_list, "sections");
   for (p = t->to_sections; p < t->to_sections_end; p++)
     {
-      printf_filtered ("\t%s", local_hex_string_custom (p->addr, fmt));
-      printf_filtered (" - %s", local_hex_string_custom (p->endaddr, fmt));
-
-      /* FIXME: A format of "08l" is not wide enough for file offsets
-	 larger than 4GB.  OTOH, making it "016l" isn't desirable either
-	 since most output will then be much wider than necessary.  It
-	 may make sense to test the size of the file and choose the
-	 format string accordingly.  */
-      if (info_verbose)
-	printf_filtered (" @ %s",
-			 local_hex_string_custom (p->the_bfd_section->filepos, "08l"));
-      printf_filtered (" is %s", bfd_section_name (p->bfd, p->the_bfd_section));
+      ui_out_begin (uiout, ui_out_type_tuple, NULL);
+      ui_out_text (uiout, "\t");
+      ui_out_field_core_addr (uiout, "start-address", p->addr);
+      ui_out_text (uiout, " - ");
+      ui_out_field_core_addr (uiout, "end-address", p->endaddr);
+      ui_out_text (uiout, " is ");
+      ui_out_field_string (uiout, "section-name", bfd_section_name (p->bfd, p->the_bfd_section));
       if (p->bfd != abfd)
 	{
-	  printf_filtered (" in %s", bfd_get_filename (p->bfd));
+          ui_out_text (uiout, " in ");
+          ui_out_field_string (uiout, "section-filename", bfd_get_filename (p->bfd));
 	}
-      printf_filtered ("\n");
+      ui_out_text (uiout, "\n");
+      ui_out_end (uiout, ui_out_type_tuple);
     }
+  ui_out_end (uiout, ui_out_type_list);
 }
 
 static void
-exec_files_info (struct target_ops *t)
+exec_files_info (struct target_ops *t, struct ui_out *uiout)
 {
-  print_section_info (t, exec_bfd);
+  print_section_info (t, exec_bfd, uiout);
 
   if (vmap)
     {
@@ -653,7 +656,7 @@ set_section_command (char *args, int fro
 	  p->addr += offset;
 	  p->endaddr += offset;
 	  if (from_tty)
-	    exec_files_info (&exec_ops);
+	    exec_files_info (&exec_ops, uiout);
 	  return;
 	}
     }
Index: go32-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/go32-nat.c,v
retrieving revision 1.37
diff -u -3 -p -r1.37 go32-nat.c
--- go32-nat.c	29 Dec 2003 07:42:43 -0000	1.37
+++ go32-nat.c	30 Mar 2004 10:20:59 -0000
@@ -180,7 +180,7 @@ static int go32_xfer_memory (CORE_ADDR m
 			     int write,
 			     struct mem_attrib *attrib,
 			     struct target_ops *target);
-static void go32_files_info (struct target_ops *target);
+static void go32_files_info (struct target_ops *target, struct ui_out *);
 static void go32_stop (void);
 static void go32_kill_inferior (void);
 static void go32_create_inferior (char *exec_file, char *args, char **env);
@@ -550,7 +550,7 @@ go32_xfer_memory (CORE_ADDR memaddr, cha
 static cmdline_t child_cmd;	/* parsed child's command line kept here */
 
 static void
-go32_files_info (struct target_ops *target)
+go32_files_info (struct target_ops *target, struct ui_out *uiout)
 {
   printf_unfiltered ("You are running a DJGPP V2 program.\n");
 }
Index: hpux-thread.c
===================================================================
RCS file: /cvs/src/src/gdb/hpux-thread.c,v
retrieving revision 1.21
diff -u -3 -p -r1.21 hpux-thread.c
--- hpux-thread.c	2 Oct 2003 20:28:29 -0000	1.21
+++ hpux-thread.c	30 Mar 2004 10:20:59 -0000
@@ -411,9 +411,9 @@ hpux_thread_xfer_memory (CORE_ADDR memad
 /* Print status information about what we're accessing.  */
 
 static void
-hpux_thread_files_info (struct target_ops *ignore)
+hpux_thread_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
-  child_ops.to_files_info (ignore);
+  child_ops.to_files_info (ignore, uiout);
 }
 
 static void
Index: infcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/infcmd.c,v
retrieving revision 1.106
diff -u -3 -p -r1.106 infcmd.c
--- infcmd.c	23 Mar 2004 16:45:01 -0000	1.106
+++ infcmd.c	30 Mar 2004 10:21:00 -0000
@@ -1308,7 +1308,7 @@ program_info (char *args, int from_tty)
       return;
     }
 
-  target_files_info ();
+  target_files_info (uiout);
   printf_filtered ("Program stopped at %s.\n",
 		   local_hex_string ((unsigned long) stop_pc));
   if (stop_step)
Index: inftarg.c
===================================================================
RCS file: /cvs/src/src/gdb/inftarg.c,v
retrieving revision 1.23
diff -u -3 -p -r1.23 inftarg.c
--- inftarg.c	4 Feb 2004 21:49:55 -0000	1.23
+++ inftarg.c	30 Mar 2004 10:21:00 -0000
@@ -59,7 +59,7 @@ void child_post_wait (ptid_t, int);
 
 static void child_open (char *, int);
 
-static void child_files_info (struct target_ops *);
+static void child_files_info (struct target_ops *, struct ui_out *);
 
 static void child_detach (char *, int);
 
@@ -300,7 +300,7 @@ child_prepare_to_store (void)
 /* Print status information about what we're accessing.  */
 
 static void
-child_files_info (struct target_ops *ignore)
+child_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   printf_unfiltered ("\tUsing the running image of %s %s.\n",
       attach_flag ? "attached" : "child", target_pid_to_str (inferior_ptid));
Index: monitor.c
===================================================================
RCS file: /cvs/src/src/gdb/monitor.c,v
retrieving revision 1.46
diff -u -3 -p -r1.46 monitor.c
--- monitor.c	21 Jan 2004 15:37:11 -0000	1.46
+++ monitor.c	30 Mar 2004 10:21:00 -0000
@@ -83,7 +83,7 @@ static int monitor_xfer_memory (CORE_ADD
 				int write, 
 				struct mem_attrib *attrib,
 				struct target_ops *target);
-static void monitor_files_info (struct target_ops *ops);
+static void monitor_files_info (struct target_ops *ops, struct ui_out *uiout);
 static int monitor_insert_breakpoint (CORE_ADDR addr, char *shadow);
 static int monitor_remove_breakpoint (CORE_ADDR addr, char *shadow);
 static void monitor_kill (void);
@@ -1408,7 +1408,7 @@ monitor_prepare_to_store (void)
 }
 
 static void
-monitor_files_info (struct target_ops *ops)
+monitor_files_info (struct target_ops *ops, struct ui_out *uiout)
 {
   printf_unfiltered ("\tAttached to %s at %d baud.\n", dev_name, baud_rate);
 }
Index: nto-procfs.c
===================================================================
RCS file: /cvs/src/src/gdb/nto-procfs.c,v
retrieving revision 1.3
diff -u -3 -p -r1.3 nto-procfs.c
--- nto-procfs.c	18 Jul 2003 17:15:33 -0000	1.3
+++ nto-procfs.c	30 Mar 2004 10:21:00 -0000
@@ -485,7 +485,7 @@ procfs_meminfo (char *args, int from_tty
 
 /* Print status information about what we're accessing.  */
 static void
-procfs_files_info (struct target_ops *ignore)
+procfs_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   printf_unfiltered ("\tUsing the running image of %s %s via %s.\n",
 		     attach_flag ? "attached" : "child",
Index: ocd.c
===================================================================
RCS file: /cvs/src/src/gdb/ocd.c,v
retrieving revision 1.28
diff -u -3 -p -r1.28 ocd.c
--- ocd.c	18 Jan 2004 19:26:51 -0000	1.28
+++ ocd.c	30 Mar 2004 10:21:00 -0000
@@ -723,7 +723,7 @@ ocd_xfer_memory (CORE_ADDR memaddr, char
 }
 
 void
-ocd_files_info (struct target_ops *ignore)
+ocd_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   puts_filtered ("Debugging a target over a serial line.\n");
 }
Index: procfs.c
===================================================================
RCS file: /cvs/src/src/gdb/procfs.c,v
retrieving revision 1.53
diff -u -3 -p -r1.53 procfs.c
--- procfs.c	15 Feb 2004 22:38:40 -0000	1.53
+++ procfs.c	30 Mar 2004 10:21:01 -0000
@@ -117,7 +117,7 @@ static void procfs_detach (char *, int);
 static void procfs_resume (ptid_t, int, enum target_signal);
 static int procfs_can_run (void);
 static void procfs_stop (void);
-static void procfs_files_info (struct target_ops *);
+static void procfs_files_info (struct target_ops *, struct ui_out *);
 static void procfs_fetch_registers (int);
 static void procfs_store_registers (int);
 static void procfs_notice_signals (ptid_t);
@@ -4587,13 +4587,13 @@ procfs_notice_signals (ptid_t ptid)
 }
 
 /*
- * Function: target_files_info
+ * Function: procfs_files_info
  *
  * Print status information about the child process.
  */
 
 static void
-procfs_files_info (struct target_ops *ignore)
+procfs_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   printf_filtered ("\tUsing the running image of %s %s via /proc.\n",
 		   attach_flag? "attached": "child",
Index: remote-e7000.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-e7000.c,v
retrieving revision 1.39
diff -u -3 -p -r1.39 remote-e7000.c
--- remote-e7000.c	11 Dec 2003 06:21:12 -0000	1.39
+++ remote-e7000.c	30 Mar 2004 10:21:01 -0000
@@ -1051,7 +1051,7 @@ e7000_prepare_to_store (void)
 }
 
 static void
-e7000_files_info (struct target_ops *ops)
+e7000_files_info (struct target_ops *ops, struct ui_out *uiout)
 {
   printf_unfiltered ("\tAttached to %s at %d baud.\n", dev_name, baudrate);
 }
Index: remote-m32r-sdi.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-m32r-sdi.c,v
retrieving revision 1.2
diff -u -3 -p -r1.2 remote-m32r-sdi.c
--- remote-m32r-sdi.c	10 Mar 2004 00:18:44 -0000	1.2
+++ remote-m32r-sdi.c	30 Mar 2004 10:21:01 -0000
@@ -1058,7 +1058,7 @@ m32r_prepare_to_store (void)
 }
 
 static void
-m32r_files_info (struct target_ops *target)
+m32r_files_info (struct target_ops *target, struct ui_out *uiout)
 {
   char *file = "nothing";
 
Index: remote-mips.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-mips.c,v
retrieving revision 1.44
diff -u -3 -p -r1.44 remote-mips.c
--- remote-mips.c	21 Jan 2004 15:37:11 -0000	1.44
+++ remote-mips.c	30 Mar 2004 10:21:01 -0000
@@ -112,7 +112,7 @@ static int mips_xfer_memory (CORE_ADDR m
 			     struct mem_attrib *attrib,
 			     struct target_ops *target);
 
-static void mips_files_info (struct target_ops *ignore);
+static void mips_files_info (struct target_ops *ignore, struct ui_out *uiout);
 
 static void mips_create_inferior (char *execfile, char *args, char **env);
 
@@ -2114,7 +2114,7 @@ mips_xfer_memory (CORE_ADDR memaddr, cha
 /* Print info on this target.  */
 
 static void
-mips_files_info (struct target_ops *ignore)
+mips_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   printf_unfiltered ("Debugging a MIPS board over a serial line.\n");
 }
Index: remote-rdi.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-rdi.c,v
retrieving revision 1.31
diff -u -3 -p -r1.31 remote-rdi.c
--- remote-rdi.c	12 Feb 2004 18:43:09 -0000	1.31
+++ remote-rdi.c	30 Mar 2004 10:21:02 -0000
@@ -52,7 +52,7 @@ extern int isascii (int);
 
 /* Prototypes for local functions */
 
-static void arm_rdi_files_info (struct target_ops *ignore);
+static void arm_rdi_files_info (struct target_ops *ignore, struct ui_out *uiout);
 
 static int arm_rdi_xfer_memory (CORE_ADDR memaddr, char *myaddr,
 				int len, int should_write,
@@ -609,7 +609,7 @@ arm_rdi_xfer_memory (CORE_ADDR memaddr, 
 /* Display random info collected from the target.  */
 
 static void
-arm_rdi_files_info (struct target_ops *ignore)
+arm_rdi_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   char *file = "nothing";
   int rslt;
Index: remote-rdp.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-rdp.c,v
retrieving revision 1.36
diff -u -3 -p -r1.36 remote-rdp.c
--- remote-rdp.c	25 Mar 2004 16:52:42 -0000	1.36
+++ remote-rdp.c	30 Mar 2004 10:21:02 -0000
@@ -1341,7 +1341,7 @@ dump_bits (struct yn *t, int info)
 }
 
 static void
-remote_rdp_files_info (struct target_ops *target)
+remote_rdp_files_info (struct target_ops *target, struct ui_out *uiout)
 {
   printf_filtered ("Target capabilities:\n");
   dump_bits (stepinfo, ds.step_info);
Index: remote-sds.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-sds.c,v
retrieving revision 1.28
diff -u -3 -p -r1.28 remote-sds.c
--- remote-sds.c	19 Jan 2004 01:20:11 -0000	1.28
+++ remote-sds.c	30 Mar 2004 10:21:02 -0000
@@ -55,7 +55,7 @@ static int sds_write_bytes (CORE_ADDR, c
 
 static int sds_read_bytes (CORE_ADDR, char *, int);
 
-static void sds_files_info (struct target_ops *ignore);
+static void sds_files_info (struct target_ops *ignore, struct ui_out *uiout);
 
 static int sds_xfer_memory (CORE_ADDR, char *, int, int, 
 			    struct mem_attrib *, struct target_ops *);
@@ -658,7 +658,7 @@ sds_xfer_memory (CORE_ADDR memaddr, char
 
 
 static void
-sds_files_info (struct target_ops *ignore)
+sds_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   puts_filtered ("Debugging over a serial connection, using SDS protocol.\n");
 }
Index: remote-sim.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-sim.c,v
retrieving revision 1.35
diff -u -3 -p -r1.35 remote-sim.c
--- remote-sim.c	2 Feb 2004 16:14:36 -0000	1.35
+++ remote-sim.c	30 Mar 2004 10:21:02 -0000
@@ -102,7 +102,7 @@ static int gdbsim_xfer_inferior_memory (
 					struct mem_attrib *attrib,
 					struct target_ops *target);
 
-static void gdbsim_files_info (struct target_ops *target);
+static void gdbsim_files_info (struct target_ops *target, struct ui_out *uiout);
 
 static void gdbsim_mourn_inferior (void);
 
@@ -778,7 +778,7 @@ gdbsim_xfer_inferior_memory (CORE_ADDR m
 }
 
 static void
-gdbsim_files_info (struct target_ops *target)
+gdbsim_files_info (struct target_ops *target, struct ui_out *uiout)
 {
   char *file = "nothing";
 
Index: remote-st.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-st.c,v
retrieving revision 1.19
diff -u -3 -p -r1.19 remote-st.c
--- remote-st.c	18 Sep 2003 22:39:21 -0000	1.19
+++ remote-st.c	30 Mar 2004 10:21:02 -0000
@@ -481,7 +481,7 @@ st2000_prepare_to_store (void)
 }
 
 static void
-st2000_files_info (void)
+st2000_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   printf ("\tAttached to %s at %d baud.\n",
 	  dev_name, baudrate);
Index: remote-utils.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-utils.c,v
retrieving revision 1.13
diff -u -3 -p -r1.13 remote-utils.c
--- remote-utils.c	23 Mar 2002 17:38:12 -0000	1.13
+++ remote-utils.c	30 Mar 2004 10:21:02 -0000
@@ -430,7 +430,7 @@ gr_detach (char *args, int from_tty)
 }
 
 void
-gr_files_info (struct target_ops *ops)
+gr_files_info (struct target_ops *ops, struct ui_out *uiout)
 {
 #ifdef __GO32__
   printf_filtered ("\tAttached to DOS asynctsr\n");
Index: remote-utils.h
===================================================================
RCS file: /cvs/src/src/gdb/remote-utils.h,v
retrieving revision 1.9
diff -u -3 -p -r1.9 remote-utils.h
--- remote-utils.h	12 Apr 2003 17:41:25 -0000	1.9
+++ remote-utils.h	30 Mar 2004 10:21:02 -0000
@@ -119,7 +119,7 @@ long sr_get_hex_word (void);
 void gr_close (int quitting);
 void gr_create_inferior (char *execfile, char *args, char **env);
 void gr_detach (char *args, int from_tty);
-void gr_files_info (struct target_ops *ops);
+void gr_files_info (struct target_ops *ops, struct ui_out *uiout);
 void gr_generic_checkin (void);
 void gr_kill (void);
 void gr_mourn (void);
Index: remote-vx.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-vx.c,v
retrieving revision 1.30
diff -u -3 -p -r1.30 remote-vx.c
--- remote-vx.c	21 Sep 2003 01:26:45 -0000	1.30
+++ remote-vx.c	30 Mar 2004 10:21:03 -0000
@@ -554,7 +554,7 @@ vx_xfer_memory (CORE_ADDR memaddr, char 
 }
 
 static void
-vx_files_info (void)
+vx_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   printf_unfiltered ("\tAttached to host `%s'", vx_host);
   printf_unfiltered (", which has %sfloating point", target_has_fp ? "" : "no ");
@@ -562,7 +562,7 @@ vx_files_info (void)
 }
 
 static void
-vx_run_files_info (void)
+vx_run_files_info (struct target_ops *ignore, struct ui_out *)
 {
   printf_unfiltered ("\tRunning %s VxWorks process %s",
 		     vx_running ? "child" : "attached",
Index: remote.c
===================================================================
RCS file: /cvs/src/src/gdb/remote.c,v
retrieving revision 1.132
diff -u -3 -p -r1.132 remote.c
--- remote.c	23 Mar 2004 15:14:02 -0000	1.132
+++ remote.c	30 Mar 2004 10:21:03 -0000
@@ -70,7 +70,7 @@ void async_remote_interrupt_twice (gdb_c
 
 static void build_remote_gdbarch_data (void);
 
-static void remote_files_info (struct target_ops *ignore);
+static void remote_files_info (struct target_ops *ignore, struct ui_out *uiout);
 
 static int remote_xfer_memory (CORE_ADDR memaddr, char *myaddr,
 			       int len, int should_write,
@@ -3835,7 +3835,7 @@ remote_xfer_memory (CORE_ADDR mem_addr, 
 }
 
 static void
-remote_files_info (struct target_ops *ignore)
+remote_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   puts_filtered ("Debugging a target over a serial line.\n");
 }
Index: sol-thread.c
===================================================================
RCS file: /cvs/src/src/gdb/sol-thread.c,v
retrieving revision 1.39
diff -u -3 -p -r1.39 sol-thread.c
--- sol-thread.c	1 Feb 2004 22:35:28 -0000	1.39
+++ sol-thread.c	30 Mar 2004 10:21:04 -0000
@@ -784,9 +784,9 @@ sol_thread_xfer_partial (struct target_o
 /* Print status information about what we're accessing.  */
 
 static void
-sol_thread_files_info (struct target_ops *ignore)
+sol_thread_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
-  procfs_ops.to_files_info (ignore);
+  procfs_ops.to_files_info (ignore, uiout);
 }
 
 static void
@@ -1455,9 +1455,9 @@ sol_core_detach (char *args, int from_tt
 }
 
 static void
-sol_core_files_info (struct target_ops *t)
+sol_core_files_info (struct target_ops *t, struct ui_out *uiout)
 {
-  orig_core_ops.to_files_info (t);
+  orig_core_ops.to_files_info (t, uiout);
 }
 
 /* Worker bee for info sol-thread command.  This is a callback function that
Index: target.c
===================================================================
RCS file: /cvs/src/src/gdb/target.c,v
retrieving revision 1.71
diff -u -3 -p -r1.71 target.c
--- target.c	9 Mar 2004 16:16:52 -0000	1.71
+++ target.c	30 Mar 2004 10:21:04 -0000
@@ -39,7 +39,7 @@
 #include "gdb_assert.h"
 #include "gdbcore.h"
 
-static void target_info (char *, int);
+void target_info (char *, int);
 
 static void maybe_kill_then_create_inferior (char *, char *, char **);
 
@@ -111,7 +111,7 @@ static void debug_to_prepare_to_store (v
 static int debug_to_xfer_memory (CORE_ADDR, char *, int, int,
 				 struct mem_attrib *, struct target_ops *);
 
-static void debug_to_files_info (struct target_ops *);
+static void debug_to_files_info (struct target_ops *, struct ui_out *);
 
 static int debug_to_insert_breakpoint (CORE_ADDR, char *);
 
@@ -315,7 +315,7 @@ kill_or_be_killed (int from_tty)
   if (target_has_execution)
     {
       printf_unfiltered ("You are already running a program:\n");
-      target_files_info ();
+      target_files_info (uiout);
       if (query ("Kill it? "))
 	{
 	  target_kill ();
@@ -500,7 +500,7 @@ update_current_target (void)
 	    (int (*) (CORE_ADDR, char *, int, int, struct mem_attrib *, struct target_ops *)) 
 	    nomemory);
   de_fault (to_files_info, 
-	    (void (*) (struct target_ops *)) 
+	    (void (*) (struct target_ops *, struct ui_out *)) 
 	    target_ignore);
   de_fault (to_insert_breakpoint, 
 	    memory_insert_breakpoint);
@@ -1210,7 +1210,7 @@ get_target_memory_unsigned (struct targe
   return extract_unsigned_integer (buf, len);
 }
 
-static void
+void
 target_info (char *args, int from_tty)
 {
   struct target_ops *t;
@@ -1224,6 +1224,7 @@ target_info (char *args, int from_tty)
     return;
 #endif
 
+  ui_out_begin (uiout, ui_out_type_list, "targets");
   for (t = target_stack; t != NULL; t = t->beneath)
     {
       if (!t->to_has_memory)
@@ -1231,12 +1232,19 @@ target_info (char *args, int from_tty)
 
       if ((int) (t->to_stratum) <= (int) dummy_stratum)
 	continue;
+      ui_out_begin (uiout, ui_out_type_tuple, NULL);
       if (has_all_mem)
 	printf_unfiltered ("\tWhile running this, GDB does not access memory from...\n");
-      printf_unfiltered ("%s:\n", t->to_longname);
-      (t->to_files_info) (t);
+      ui_out_field_string (uiout, "target-type-long", t->to_longname);
+      ui_out_text (uiout, " (short: ");
+      ui_out_field_string (uiout, "target-type-short", t->to_shortname);
+      ui_out_text (uiout, "):\n");
+
+      (t->to_files_info) (t, uiout);
       has_all_mem = t->to_has_all_memory;
+      ui_out_end (uiout, ui_out_type_tuple);
     }
+  ui_out_end (uiout, ui_out_type_list);
 }
 
 /* This is to be called by the open routine before it does
@@ -1856,9 +1864,9 @@ debug_to_xfer_memory (CORE_ADDR memaddr,
 }
 
 static void
-debug_to_files_info (struct target_ops *target)
+debug_to_files_info (struct target_ops *target, struct ui_out *uiout)
 {
-  debug_target.to_files_info (target);
+  debug_target.to_files_info (target, uiout);
 
   fprintf_unfiltered (gdb_stdlog, "target_files_info (xxx)\n");
 }
Index: target.h
===================================================================
RCS file: /cvs/src/src/gdb/target.h,v
retrieving revision 1.57
diff -u -3 -p -r1.57 target.h
--- target.h	4 Feb 2004 21:49:55 -0000	1.57
+++ target.h	30 Mar 2004 10:21:04 -0000
@@ -332,7 +332,7 @@ struct target_ops
 			   struct mem_attrib *attrib,
 			   struct target_ops *target);
 
-    void (*to_files_info) (struct target_ops *);
+    void (*to_files_info) (struct target_ops *, struct ui_out *uiout);
     int (*to_insert_breakpoint) (CORE_ADDR, char *);
     int (*to_remove_breakpoint) (CORE_ADDR, char *);
     int (*to_can_use_hw_breakpoint) (int, int, int);
@@ -616,12 +616,12 @@ extern int inferior_has_execd (int pid, 
 
 /* From exec.c */
 
-extern void print_section_info (struct target_ops *, bfd *);
+extern void print_section_info (struct target_ops *, bfd *, struct ui_out *);
 
 /* Print a line about the current target.  */
 
-#define	target_files_info()	\
-     (*current_target.to_files_info) (&current_target)
+#define	target_files_info(uiout)	\
+     (*current_target.to_files_info) (&current_target, uiout)
 
 /* Insert a breakpoint at address ADDR in the target machine.  SAVE is
    a pointer to memory allocated for saving the target contents.  It
Index: v850ice.c
===================================================================
RCS file: /cvs/src/src/gdb/v850ice.c,v
retrieving revision 1.18
diff -u -3 -p -r1.18 v850ice.c
--- v850ice.c	2 Oct 2003 20:28:30 -0000	1.18
+++ v850ice.c	30 Mar 2004 10:21:04 -0000
@@ -57,7 +57,7 @@ static int init_hidden_window (void);
 
 static LRESULT CALLBACK v850ice_wndproc (HWND, UINT, WPARAM, LPARAM);
 
-static void v850ice_files_info (struct target_ops *ignore);
+static void v850ice_files_info (struct target_ops *ignore, struct ui_out *uiout);
 
 static int v850ice_xfer_memory (CORE_ADDR memaddr, char *myaddr,
 				int len, int should_write,
@@ -698,7 +698,7 @@ v850ice_xfer_memory (CORE_ADDR memaddr, 
 }
 
 static void
-v850ice_files_info (struct target_ops *ignore)
+v850ice_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   puts_filtered ("Debugging a target via the NEC V850 ICE.\n");
 }
Index: win32-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/win32-nat.c,v
retrieving revision 1.87
diff -u -3 -p -r1.87 win32-nat.c
--- win32-nat.c	5 Jan 2004 19:53:08 -0000	1.87
+++ win32-nat.c	30 Mar 2004 10:21:04 -0000
@@ -1662,7 +1662,7 @@ child_detach (char *args, int from_tty)
 /* Print status information about what we're accessing.  */
 
 static void
-child_files_info (struct target_ops *ignore)
+child_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   printf_unfiltered ("\tUsing the running image of %s %s.\n",
       attach_flag ? "attached" : "child", target_pid_to_str (inferior_ptid));
Index: wince.c
===================================================================
RCS file: /cvs/src/src/gdb/wince.c,v
retrieving revision 1.26
diff -u -3 -p -r1.26 wince.c
--- wince.c	6 Nov 2003 02:52:28 -0000	1.26
+++ wince.c	30 Mar 2004 10:21:05 -0000
@@ -1521,7 +1521,7 @@ child_wait (ptid_t ptid, struct target_w
 /* Print status information about what we're accessing.  */
 
 static void
-child_files_info (struct target_ops *ignore)
+child_files_info (struct target_ops *ignore, struct ui_out *uiout)
 {
   printf_unfiltered ("\tUsing the running image of child %s.\n",
 		     target_pid_to_str (inferior_ptid));
Index: doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.202
diff -u -3 -p -r1.202 gdb.texinfo
--- doc/gdb.texinfo	28 Mar 2004 12:22:55 -0000	1.202
+++ doc/gdb.texinfo	30 Mar 2004 10:21:10 -0000
@@ -14574,7 +14574,7 @@ Elena Zannoni.
 
 @item @var{mi-command} @expansion{}
 @code{[ @var{token} ] "-" @var{operation} ( " " @var{option} )*
-@code{[} " --" @code{]} ( " " @var{parameter} )* @var{nl}}
+[ " --" ] ( " " @var{parameter} )* @var{nl}}
 
 @item @var{token} @expansion{}
 "any sequence of digits"
@@ -14698,13 +14698,13 @@ depending on the needs---this is still i
 @code{@var{console-stream-output} | @var{target-stream-output} | @var{log-stream-output}}
 
 @item @var{console-stream-output} @expansion{}
-@code{"~" @var{c-string}}
+@code{"~" @var{c-string} @var{nl}}
 
 @item @var{target-stream-output} @expansion{}
-@code{"@@" @var{c-string}}
+@code{"@@" @var{c-string} @var{nl}}
 
 @item @var{log-stream-output} @expansion{}
-@code{"&" @var{c-string}}
+@code{"&" @var{c-string} @var{nl}}
 
 @item @var{nl} @expansion{}
 @code{CR | CR-LF}
@@ -16765,7 +16765,38 @@ information as this command.  @code{gdbt
 @samp{gdb_load_info}.
 
 @subsubheading Example
-N.A.
+@smallexample
+(@value{GDBP})
+123-file-list-exec-sections
+~"Symbols from \"/var/home/ouk/projects/ht20/testproject/test-g\".\n"
+123^done,targets=[{target-type-long="Local exec file",target-type-short="exec",
+filename="/var/home/ouk/projects/ht20/testproject/test-g",file-type="elf32-i386",
+target-entrypoint="0x08048380",sections=[
+{start-address="0x08048134",end-address="0x08048147",section-name=".interp"},
+{start-address="0x08048148",end-address="0x08048168",section-name=".note.ABI-tag"},
+{start-address="0x08048168",end-address="0x08048198",section-name=".hash"},
+{start-address="0x08048198",end-address="0x08048208",section-name=".dynsym"},
+{start-address="0x08048208",end-address="0x080482af",section-name=".dynstr"},
+{start-address="0x080482b0",end-address="0x080482be",section-name=".gnu.version"},
+{start-address="0x080482c0",end-address="0x08048300",section-name=".gnu.version_r"},
+{start-address="0x08048300",end-address="0x08048308",section-name=".rel.dyn"},
+{start-address="0x08048308",end-address="0x08048320",section-name=".rel.plt"},
+{start-address="0x08048320",end-address="0x08048337",section-name=".init"},
+{start-address="0x08048338",end-address="0x08048378",section-name=".plt"},
+{start-address="0x08048380",end-address="0x08048570",section-name=".text"},
+{start-address="0x08048570",end-address="0x0804858b",section-name=".fini"},
+{start-address="0x0804858c",end-address="0x080485a0",section-name=".rodata"},
+{start-address="0x080485a0",end-address="0x080485b4",section-name=".eh_frame_hdr"},
+{start-address="0x080485b4",end-address="0x080485f0",section-name=".eh_frame"},
+{start-address="0x080495f0",end-address="0x080495fc",section-name=".data"},
+{start-address="0x080495fc",end-address="0x080496dc",section-name=".dynamic"},
+{start-address="0x080496dc",end-address="0x080496e4",section-name=".ctors"},
+{start-address="0x080496e4",end-address="0x080496ec",section-name=".dtors"},
+{start-address="0x080496ec",end-address="0x080496f0",section-name=".jcr"},
+{start-address="0x080496f0",end-address="0x0804970c",section-name=".got"},
+{start-address="0x0804970c",end-address="0x08049710",section-name=".bss"}]}]
+(@value{GDBP})
+@end smallexample
 
 
 @subheading The @code{-file-list-exec-source-file} Command
Index: mi/mi-cmd-file.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmd-file.c,v
retrieving revision 1.1
diff -u -3 -p -r1.1 mi-cmd-file.c
--- mi/mi-cmd-file.c	2 Apr 2003 22:10:35 -0000	1.1
+++ mi/mi-cmd-file.c	30 Mar 2004 10:21:11 -0000
@@ -65,3 +65,12 @@ mi_cmd_file_list_exec_source_file(char *
 
   return MI_CMD_DONE;
 }
+
+extern void target_info (char *, int);
+
+enum mi_cmd_result
+mi_cmd_file_list_exec_sections(char *command, char **argv, int argc)
+{
+  target_info(NULL, 1);
+  return MI_CMD_DONE;
+}
Index: mi/mi-cmds.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmds.c,v
retrieving revision 1.14
diff -u -3 -p -r1.14 mi-cmds.c
--- mi/mi-cmds.c	4 Aug 2003 23:18:50 -0000	1.14
+++ mi/mi-cmds.c	30 Mar 2004 10:21:11 -0000
@@ -79,7 +79,7 @@ struct mi_cmd mi_cmds[] =
   { "file-clear", { NULL, 0 }, NULL, NULL },
   { "file-exec-and-symbols", { "file", 1 }, NULL, NULL },
   { "file-exec-file", { "exec-file", 1 }, NULL, NULL },
-  { "file-list-exec-sections", { NULL, 0 }, NULL, NULL },
+  { "file-list-exec-sections", { NULL, 0 }, 0, mi_cmd_file_list_exec_sections },
   { "file-list-exec-source-file", { NULL, 0 }, 0, mi_cmd_file_list_exec_source_file},
   { "file-list-exec-source-files", { NULL, 0 }, NULL, NULL },
   { "file-list-shared-libraries", { NULL, 0 }, NULL, NULL },
Index: mi/mi-cmds.h
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmds.h,v
retrieving revision 1.12
diff -u -3 -p -r1.12 mi-cmds.h
--- mi/mi-cmds.h	24 Jan 2004 04:21:43 -0000	1.12
+++ mi/mi-cmds.h	30 Mar 2004 10:21:11 -0000
@@ -86,6 +86,7 @@ extern mi_cmd_args_ftype mi_cmd_exec_ste
 extern mi_cmd_args_ftype mi_cmd_exec_step_instruction;
 extern mi_cmd_args_ftype mi_cmd_exec_until;
 extern mi_cmd_args_ftype mi_cmd_exec_interrupt;
+extern mi_cmd_argv_ftype mi_cmd_file_list_exec_sections;
 extern mi_cmd_argv_ftype mi_cmd_file_list_exec_source_file;
 extern mi_cmd_argv_ftype mi_cmd_gdb_exit;
 extern mi_cmd_argv_ftype mi_cmd_interpreter_exec;

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