Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* ser-unix.c:do_unix_readchar() Don't timeout when told not to
@ 2000-04-01  0:00 Jonathan Larmour
  2000-03-19 23:42 ` Jonathan Larmour
  0 siblings, 1 reply; 2+ messages in thread
From: Jonathan Larmour @ 2000-04-01  0:00 UTC (permalink / raw)
  To: gdb-patches; +Cc: Alex Schuilenburg

A while back, folks in the eCos team reported that you could get "Watchdog
has expired. Target detached." messages even when the watchdog wasn't set.
The GDB team reacted in disbelief :-).

After getting irritated by it this evening, I looked for and found the
problem: do_unix_readchar() could still return SERIAL_TIMEOUT, even when the
requested timeout was -1 (i.e. infinite).

The attached patch fixes the problem, and I used the opportunity to make the
code slightly more robust, and more similar to e.g. do_hardwire_readchar in
the same file.

I don't have write permission, so please check this in. Thanks,

Jifl

2000-03-20  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* ser-unix.c (do_unix_readchar): Reorganise to be more robust,
	particularly ensuring it can't return SERIAL_TIMEOUT when told
	not to time out.


-- 
Red Hat, 35 Cambridge Place, Cambridge, UK. CB2 1NS  Tel: +44 (1223) 728762
"Plan to be spontaneous tomorrow."  ||  These opinions are all my own fault
Index: ser-unix.c
===================================================================
RCS file: /cvs/src/src/gdb/ser-unix.c,v
retrieving revision 1.2
diff -u -5 -p -c -r1.2 ser-unix.c
*** ser-unix.c	2000/02/09 08:52:47	1.2
--- ser-unix.c	2000/03/20 07:30:48
*************** do_unix_readchar (serial_t scb, int time
*** 908,920 ****
    /* We have to be able to keep the GUI alive here, so we break the original
       timeout into steps of 1 second, running the "keep the GUI alive" hook 
       each time through the loop.
  
       Also, timeout = 0 means to poll, so we just set the delta to 0, so we
!      will only go through the loop once. */
  
!   delta = (timeout == 0 ? 0 : 1);
    while (1)
      {
  
        /* N.B. The UI may destroy our world (for instance by calling
           remote_stop,) in which case we want to get out of here as
--- 908,920 ----
    /* We have to be able to keep the GUI alive here, so we break the original
       timeout into steps of 1 second, running the "keep the GUI alive" hook 
       each time through the loop.
  
       Also, timeout = 0 means to poll, so we just set the delta to 0, so we
!      will only go through the loop once. timeout < 0 means to wait forever. */
  
!   delta = (timeout <= 0 ? 0 : 1);
    while (1)
      {
  
        /* N.B. The UI may destroy our world (for instance by calling
           remote_stop,) in which case we want to get out of here as
*************** do_unix_readchar (serial_t scb, int time
*** 926,980 ****
  	{
  	  if (ui_loop_hook (0))
  	    return SERIAL_TIMEOUT;
  	}
  
!       status = ser_unix_wait_for (scb, delta);
        timeout -= delta;
  
!       /* If we got a character or an error back from wait_for, then we can 
!          break from the loop before the timeout is completed. */
  
!       if (status != SERIAL_TIMEOUT)
! 	{
! 	  break;
! 	}
  
!       /* If we have exhausted the original timeout, then generate
!          a SERIAL_TIMEOUT, and pass it out of the loop. */
  
!       else if (timeout == 0)
! 	{
! 	  status = SERIAL_TIMEOUT;
! 	  break;
  	}
-     }
- 
-   if (status < 0)
-     return status;
  
!   while (1)
!     {
!       status = read (scb->fd, scb->buf, BUFSIZ);
!       if (status != -1 || errno != EINTR)
! 	break;
!     }
! 
!   if (status <= 0)
!     {
!       if (status == 0)
! 	return SERIAL_TIMEOUT;	/* 0 chars means timeout [may need to
! 				   distinguish between EOF & timeouts
! 				   someday] */
!       else
! 	return SERIAL_ERROR;	/* Got an error from read */
      }
- 
-   scb->bufcnt = status;
-   scb->bufcnt--;
-   scb->bufp = scb->buf;
-   return *scb->bufp++;
  }
  
  /* Perform operations common to both old and new readchar. */
  
  /* Return the next character from the input FIFO.  If the FIFO is
--- 926,967 ----
  	{
  	  if (ui_loop_hook (0))
  	    return SERIAL_TIMEOUT;
  	}
  
!       status = ser_unix_wait_for (scb, timeout < 0 ? timeout : delta);
        timeout -= delta;
  
!       /* If we got an error back from wait_for, then we can return */
  
!       if (status == SERIAL_ERROR)
!         return status;
  
!       status = read (scb->fd, scb->buf, BUFSIZ);
  
!       if (status <= 0)
!         {
!           if (status == 0)
!             {
!               if (timeout != 0)
!                 continue;
!               else
!                 return SERIAL_TIMEOUT;	/* 0 chars means timeout [may need to
! 					   distinguish between EOF & timeouts
! 					   someday] */
!             }
! 	  else if (errno == EINTR)
!             continue;
!           else
! 	    return SERIAL_ERROR;	/* Got an error from read */
  	}
  
!       scb->bufcnt = status;
!       scb->bufcnt--;
!       scb->bufp = scb->buf;
!       return *scb->bufp++;
      }
  }
  
  /* Perform operations common to both old and new readchar. */
  
  /* Return the next character from the input FIFO.  If the FIFO is
From eliz@gnu.org Sat Apr 01 00:00:00 2000
From: Eli Zaretskii <eliz@gnu.org>
To: shebs@apple.com
Cc: msnyder@cygnus.com, jtc@redback.com, gdb-patches@sourceware.cygnus.com
Subject: Re: gdb.texinfo broken?
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <200003260516.AAA27674@mescaline.gnu.org>
References: <38D6CF69.6844@cygnus.com> <200003211819.NAA12435@indy.delorie.com> <200003221655.LAA14175@indy.delorie.com> <38DA7A75.2E59FB7B@apple.com>
X-SW-Source: 2000-q1/msg01034.html
Content-length: 505

   To make this even more entertaining, there are patched versions of
   3.12; so for instance my RH 6.1 machine comes with a patched texinfo
   3.12f (or 3.12h?, it's not in front of me) where this bug is fixed.

Ys, this was corrected in 3.12d, I think.

   Eli, could you commit this patch please?  Thanks...

I'm currently on the road with no access to the machine where I have
the ssh setup.  So either please until March 30, or someone else could
install the change.  Sorry about the inconvenience.
From ac131313@cygnus.com Sat Apr 01 00:00:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: shebs@apple.com
Cc: GDB Patches <gdb-patches@sourceware.cygnus.com>
Subject: Re: [PATCH] Fix texinfo problems...
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38DC6763.563424A2@cygnus.com>
References: <38DB1875.4B504618@cygnus.com> <38DBB937.126C95E@apple.com>
X-SW-Source: 2000-q1/msg01022.html
Content-length: 1462

Stan Shebs wrote:
> 
> Andrew Cagney wrote:
> >
> > Hello,
> >
> > I've applied the attatched patch.  It probably isn't elegant and
> > probably isn't the best way of handling this :-/ However, after applying
> > it I'm able to use makeinfo versions 3.12, 3.12f and 4.0 :-)
> 
> *Please* don't add the node links back!!  I went to some trouble to get
> rid of them all, because they make for an utter nightmare when you're
> trying to add new material.  They're only useful if you want to link
> nodes in some fashion other than that implied by the chapter/section
> structure, and as of yet I haven't heard anyone come up with a good
> rationale for linking in any other way.
> 
> The replication of the TOC node with ifinfo and ifhtml is sufficient
> to make the manual generate correctly with three versions of texinfo,
> so I'm mystified as to why you think these other changes are necessary...

I'm sorry, but please _don't_ delete them until I've cut this 5.0 branch
:-) Without top level node entries I found that makeinfo 3.12 I was
using failed.  As soon as the branch goes through, you're encouraged to
strip them out, I'd expect the next relese to require makeinfo 4.0.

This is also why I moved the ``chapter'' and ``node'' entries from the
included *.texi files into gdb.texinfo.  It made it possible for me to
add correct entries for those included subjects.  (I discovered C-c C-u
C-e :-)

If there is a correct way, please fix.

	sorry,
		Andrew
From thz@Lennartz-electronic.DE Sat Apr 01 00:00:00 2000
From: Thomas Zenker <thz@Lennartz-electronic.DE>
To: gdb-patches@sourceware.cygnus.com
Subject: [PATCH] compile for ARM in rdi-share under 4.4BSD
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <20000204115700.A23323@mezcal.tue.le>
X-SW-Source: 2000-q1/msg00124.html
Content-length: 817

Hi,

here are 3 small changes I propose to apply to the rdi library in
gdb/rdi-share:

	1. hsys.c: to compile under 4.4BSD derived systems (FreeBSD,
	   NetBSD...) sys_errlist should not be declared in hsys.c.
	   NEED_SYSERRLIST is set already by configure, so we can
	   use it.

	2. unixcomm.c: 4.4BSD derived systems define BSD, but are
	   posix compliant and we should not work with the old
	   compatibility stuff.  Because of that I undef BSD in
	   case of FBSD etc and include sys/ioctl to get the flags.

	3. unixcomm.c: if the TIOCEXCL flags exists set serial line
	   for exclusive use.

These patches are against CVS archive of today.

-- Thomas Zenker
   c/o Lennartz electronic GmbH
   Bismarckstrasse 136, D-72072 Tuebingen, Germany
   Phone:  +49-(0)7071-93550
   Email:  thz@lennartz-electronic.de
From fnasser@redhat.com Sat Apr 01 00:00:00 2000
From: Fernando Nasser <fnasser@redhat.com>
To: Grant Edwards <grante@visi.com>
Cc: Fernando Nasser <fnasser@cygnus.com>, gdb-patches@sourceware.cygnus.com
Subject: Re: Patch for RDI target code to allow user-specified devices
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38B2AF5F.5322CE42@redhat.com>
References: <20000221141155.A31206@visi.com> <38B1C28D.50BC5918@cygnus.com> <20000221223021.A12670@visi.com>
X-SW-Source: 2000-q1/msg00301.html
Content-length: 743

Hi Grant, thanks for yior understanding...  and for all the
improvements.

I will be waiting for the revised patch and I will check it in.

Grant Edwards wrote:
> 
> BTW, the parallel port code does seem to work, in case anybody was
> wondering.  :)
> 
Oh Gosh!  How am I going to test this?  My boards are all serial and the
only other thing I have access to is Ethernet.

I wonder if anybody uses the parallel conection...  I guess you have
something with parallel connection, or you wouldn't know it is not
working, right?


-- 
Fernando Nasser
Red Hat, Inc. - Toronto                 E-Mail:  fnasser@redhat.com
2323 Yonge Street, Suite #300           Tel:  416-482-2661 ext. 311
Toronto, Ontario   M4P 2C9              Fax:  416-482-6299
From kingdon@redhat.com Sat Apr 01 00:00:00 2000
From: Jim Kingdon <kingdon@redhat.com>
To: kingdon@redhat.com
Cc: gdb-patches@sourceware.cygnus.com, blizzard@mozilla.org
Subject: Re: dlclose()
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <200002200521.AAA29598@devserv.devel.redhat.com>
References: <200002161953.OAA07411@devserv.devel.redhat.com>
X-SW-Source: 2000-q1/msg00251.html
Content-length: 5806

> Here's another patch for the dlclose() problem we've been talking
> about (5130 in bugzilla.redhat.com and all).

Early feedback seems to be positive (thanks Chris), so here is a
slightly revised version (cleans up some of the free'ing).  As far as
I know this is ready to check in.  Of course, if people want to weigh
in that could help make it clear.

2000-02-20  Jim Kingdon  <kingdon@redhat.com>

	* solib.c (find_solib): New argument recheck.
	* solib.c (solib_add): Pass it as 1, and add logic to delete
	shared libraries which aren't still in the inferior.
	(struct so_list): New field found_me, for solib_add.
	* solib.c (other find_solib callers): Pass recheck as 0.

Index: solib.c
===================================================================
RCS file: /cvs/src/src/gdb/solib.c,v
retrieving revision 1.1.1.10
diff -u -r1.1.1.10 solib.c
--- solib.c	1999/11/17 02:30:28	1.1.1.10
+++ solib.c	2000/02/20 05:17:18
@@ -31,6 +31,7 @@
 #include "gdb_string.h"
 #include <sys/param.h>
 #include <fcntl.h>
+#include <assert.h>
 
 #ifndef SVR4_SHARED_LIBS
  /* SunOS shared libs need the nlist structure.  */
@@ -143,6 +144,11 @@
     char so_name[MAX_PATH_SIZE];	/* shared object lib name (FIXME) */
     char symbols_loaded;	/* flag: symbols read in yet? */
     char from_tty;		/* flag: print msgs? */
+
+    /* Flag for use within solib_add: have we seen this library actually
+       still mapped in the inferior this pass?  */
+    char found_me;
+
     struct objfile *objfile;	/* objfile for loaded lib */
     struct section_table *sections;
     struct section_table *sections_end;
@@ -181,8 +187,7 @@
 
 static int symbol_add_stub PARAMS ((PTR));
 
-static struct so_list *
-  find_solib PARAMS ((struct so_list *));
+static struct so_list *find_solib (struct so_list *, int);
 
 static struct link_map *
   first_link_map_member PARAMS ((void));
@@ -975,8 +980,10 @@
  */
 
 static struct so_list *
-find_solib (so_list_ptr)
-     struct so_list *so_list_ptr;	/* Last lm or NULL for first one */
+find_solib (struct so_list *so_list_ptr,
+	    /* Nonzero if we should read all the entries from the inferior,
+	       not just the ones at the end of the list.  */
+	    int recheck)
 {
   struct so_list *so_list_next = NULL;
   struct link_map *lm = NULL;
@@ -985,7 +992,9 @@
   if (so_list_ptr == NULL)
     {
       /* We are setting up for a new scan through the loaded images. */
-      if ((so_list_next = so_list_head) == NULL)
+      so_list_next = so_list_head;
+      if (so_list_next == NULL
+	  || recheck)
 	{
 	  /* We have not already read in the dynamic linking structures
 	     from the inferior, lookup the address of the base structure. */
@@ -1002,7 +1011,8 @@
     {
       /* We have been called before, and are in the process of walking
          the shared library list.  Advance to the next shared object. */
-      if ((lm = LM_NEXT (so_list_ptr)) == NULL)
+      lm = LM_NEXT (so_list_ptr);
+      if (recheck || lm == NULL)
 	{
 	  /* We have hit the end of the list, so check to see if any were
 	     added, but be quiet if we can't read from the target any more. */
@@ -1020,7 +1030,7 @@
 	}
       so_list_next = so_list_ptr->next;
     }
-  if ((so_list_next == NULL) && (lm != NULL))
+  if ((so_list_next == NULL || recheck) && (lm != NULL))
     {
       /* Get next link map structure from inferior image and build a local
          abbreviated load_map structure */
@@ -1188,7 +1198,7 @@
       /* Count how many new section_table entries there are.  */
       so = NULL;
       count = 0;
-      while ((so = find_solib (so)) != NULL)
+      while ((so = find_solib (so, 0)) != NULL)
 	{
 	  if (so->so_name[0] && !match_main (so->so_name))
 	    {
@@ -1201,7 +1211,7 @@
 	  
 	  /* Add these section table entries to the target's table.  */
 	  old = target_resize_to_sections (target, count);
-	  while ((so = find_solib (so)) != NULL)
+	  while ((so = find_solib (so, 0)) != NULL)
 	    {
 	      if (so->so_name[0])
 		{
@@ -1215,9 +1225,13 @@
 	}
     }
 
+  for (so = so_list_head; so != NULL; so = so->next)
+    so->found_me = 0;
+
   /* Now add the symbol files.  */
-  while ((so = find_solib (so)) != NULL)
+  while ((so = find_solib (so, 1)) != NULL)
     {
+      so->found_me = 1;
       if (so->so_name[0] && re_exec (so->so_name) &&
 	  !match_main (so->so_name))
 	{
@@ -1240,6 +1254,42 @@
 	}
     }
 
+  {
+    struct so_list *prev;
+    prev = NULL;
+    for (so = so_list_head; so != NULL; so = so->next)
+      {
+	if (!so->found_me)
+	  {
+	    /* FIXME: need analogue to disable_breakpoints_in_shlibs but
+	       just for this one struct so_list.  */
+
+	    if (so->sections != NULL)
+	      free (so->sections);
+
+	    free_objfile (so->objfile);
+
+	    /* Punt the issue of the section tables that we put in the
+	       target vector.  The excuse is that they are basically
+	       used for coredumps rather than running programs, and
+	       with coredumps we don't unload shared libraries.  */
+
+	    assert (so->abfd != NULL);
+	    if (!bfd_close (so->abfd))
+	      warning ("cannot close \"%s\": %s",
+		       so->so_name, bfd_errmsg (bfd_get_error ()));
+
+	    if (prev == NULL)
+	      so_list_head = so->next;
+	    else
+	      prev->next = so->next;
+
+	    free (so);
+	  }
+	prev = so;
+      }
+  }
+
   /* Getting new symbols may change our opinion about what is
      frameless.  */
   if (so_last)
@@ -1289,7 +1339,7 @@
   addr_fmt = "016l";
 #endif
 
-  while ((so = find_solib (so)) != NULL)
+  while ((so = find_solib (so, 0)) != NULL)
     {
       if (so->so_name[0])
 	{
@@ -1347,7 +1397,7 @@
 {
   register struct so_list *so = 0;	/* link map state variable */
 
-  while ((so = find_solib (so)) != NULL)
+  while ((so = find_solib (so, 0)) != NULL)
     {
       if (so->so_name[0])
 	{
From ac131313@cygnus.com Sat Apr 01 00:00:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: GDB Patches <gdb-patches@sourceware.cygnus.com>
Subject: RFA: Deprecate remote protocol sequence-ID
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38DAF122.3CA0E862@cygnus.com>
X-SW-Source: 2000-q1/msg00977.html
Content-length: 309

I'd like to put forward the proposal that the sequence-id:

$sequence-id:packet-data#checksum

be clearly deprecated.  GDB doesn't produce them and all known targets
do nothing useful with them.  Further, the syntax is dangerous as it
restricts (in a very bizare way) the contents of actual packets.

	Andrew
From ac131313@cygnus.com Sat Apr 01 00:00:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: Scott Bambrough <scottb@netwinder.org>
Cc: GDB Patches <gdb-patches@sourceware.cygnus.com>
Subject: Re: RFC: Patch to arm-tdep.c -- Register flavors
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38AA1597.CD9A8670@cygnus.com>
References: <38A9C3F4.20C62065@cygnus.com> <38A9E368.E309E33C@netwinder.org>
X-SW-Source: 2000-q1/msg00166.html
Content-length: 407

Scott Bambrough wrote:
> 
> Fernando,
> 
> I have a couple of minor nits:
> 
> Could you submit a unified diff instead of the context diff.  It would be easier
> to read.  Personally I prefer diff -up.

FWIW, both unified and context diffs are acceptable as patch submittions
(see CONTRIBUTE).
While I might personally prefer context diffs (showing my age?) I get to
read and accept both.

	enjoy,
		Andrew
From msnyder@cygnus.com Sat Apr 01 00:00:00 2000
From: Michael Snyder <msnyder@cygnus.com>
To: Toshiyasu Morita <tm@netcom.com>
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: [PATCH]: Allow struct compare in expressions.
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38D94D62.6951@cygnus.com>
References: <200003222218.OAA02705@netcom.com>
X-SW-Source: 2000-q1/msg00923.html
Content-length: 5378

Toshiyasu Morita wrote:
> 
> Does this compare ignore the padding in the struct?

Nope.  It's a binary compare, like memcmp.

> >
> >
> > The following change allows GDB to evaluate (and set watchpoints on)
> > expressions of the form (a == b) and (a != b), where a and b are
> > simple C structs or unions.  It would be possible to extend this
> > further by allowing simple binary comparison for classes that don't
> > have an operator== method: I leave that as an exercise for someone
> > else.
> >
> > Jim Blandy, David Taylor, I think both of your approvals is required.
> >
> > 2000-03-22  Michael Snyder  <msnyder@cleaver.cygnus.com>
> >
> >         * eval.c (evaluate_subexp_standard): allow for simple comparison
> >         of structures, in the absense of C++ method symbols.
> >         * symtab.c (total_number_of_methods): make public, for use above.
> >         * symtab.h (total_number_of_methods): publish prototype.
> >
> > Index: ChangeLog
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/ChangeLog,v
> > retrieving revision 1.163
> > diff -c -r1.163 ChangeLog
> > *** ChangeLog 2000/03/22 09:45:01     1.163
> > --- ChangeLog 2000/03/22 20:38:33
> > ***************
> > *** 1,3 ****
> > --- 1,10 ----
> > + 2000-03-22  Michael Snyder  <msnyder@cleaver.cygnus.com>
> > +
> > +     * eval.c (evaluate_subexp_standard): allow for simple comparison
> > +     of structures, in the absense of C++ method symbols.
> > +     * symtab.c (total_number_of_methods): make public, for use above.
> > +     * symtab.h (total_number_of_methods): publish prototype.
> > +
> >   2000-03-22  Mark Kettenis  <kettenis@gnu.org>
> >
> >       * config/i386/tm-i386aix.h (I386_AIX_TARGET): Remove.
> > Index: eval.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/eval.c,v
> > retrieving revision 1.2
> > diff -c -r1.2 eval.c
> > *** eval.c    2000/03/14 17:01:04     1.2
> > --- eval.c    2000/03/22 20:38:34
> > ***************
> > *** 1448,1454 ****
> >         arg2 = evaluate_subexp (VALUE_TYPE (arg1), exp, pos, noside);
> >         if (noside == EVAL_SKIP)
> >       goto nosideret;
> > !       if (binop_user_defined_p (op, arg1, arg2))
> >       {
> >         return value_x_binop (arg1, arg2, op, OP_NULL, noside);
> >       }
> > --- 1448,1459 ----
> >         arg2 = evaluate_subexp (VALUE_TYPE (arg1), exp, pos, noside);
> >         if (noside == EVAL_SKIP)
> >       goto nosideret;
> > !
> > !       /* NOTE: because BINOP_EQUAL is a legal operaton for
> > !      C structs (as opposed to C++ classes), revert to
> > !      simple value comparison if the type has no methods.  */
> > !       if (binop_user_defined_p (op, arg1, arg2) &&
> > !       total_number_of_methods (arg1->type) > 0)
> >       {
> >         return value_x_binop (arg1, arg2, op, OP_NULL, noside);
> >       }
> > ***************
> > *** 1463,1469 ****
> >         arg2 = evaluate_subexp (VALUE_TYPE (arg1), exp, pos, noside);
> >         if (noside == EVAL_SKIP)
> >       goto nosideret;
> > !       if (binop_user_defined_p (op, arg1, arg2))
> >       {
> >         return value_x_binop (arg1, arg2, op, OP_NULL, noside);
> >       }
> > --- 1468,1479 ----
> >         arg2 = evaluate_subexp (VALUE_TYPE (arg1), exp, pos, noside);
> >         if (noside == EVAL_SKIP)
> >       goto nosideret;
> > !
> > !       /* NOTE: because BINOP_NOTEQUAL is a legal operaton for
> > !      C structs (as opposed to C++ classes), revert to
> > !      simple value comparison if the type has no methods.  */
> > !       if (binop_user_defined_p (op, arg1, arg2) &&
> > !       total_number_of_methods (arg1->type) > 0)
> >       {
> >         return value_x_binop (arg1, arg2, op, OP_NULL, noside);
> >       }
> > Index: symtab.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/symtab.c,v
> > retrieving revision 1.2
> > diff -c -r1.2 symtab.c
> > *** symtab.c  2000/02/08 04:39:02     1.2
> > --- symtab.c  2000/03/22 20:38:34
> > ***************
> > *** 2217,2225 ****
> >      reader because the type of the baseclass might still be stubbed
> >      when the definition of the derived class is parsed.  */
> >
> > ! static int total_number_of_methods PARAMS ((struct type * type));
> > !
> > ! static int
> >   total_number_of_methods (type)
> >        struct type *type;
> >   {
> > --- 2217,2223 ----
> >      reader because the type of the baseclass might still be stubbed
> >      when the definition of the derived class is parsed.  */
> >
> > ! int
> >   total_number_of_methods (type)
> >        struct type *type;
> >   {
> > Index: symtab.h
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/symtab.h,v
> > retrieving revision 1.4
> > diff -c -r1.4 symtab.h
> > *** symtab.h  2000/03/21 22:37:42     1.4
> > --- symtab.h  2000/03/22 20:38:34
> > ***************
> > *** 1462,1467 ****
> > --- 1462,1472 ----
> >   extern int
> >   in_prologue PARAMS ((CORE_ADDR pc, CORE_ADDR func_start));
> >
> > + /* Number of method symbols for TYPE
> > +    (and all its base classes) */
> > + extern int
> > + total_number_of_methods PARAMS ((struct type * type));
> > +
> >   extern struct symbol *
> >     fixup_symbol_section PARAMS ((struct symbol *, struct objfile *));
> >
> >
From dima@Chg.RU Sat Apr 01 00:00:00 2000
From: Dmitry Sivachenko <dima@Chg.RU>
To: gdb-patches@sourceware.cygnus.com
Subject: changes to gdb.texinfo
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <200001021829.VAA60882@netserv1.chg.ru>
X-SW-Source: 2000-q1/msg00003.html
Content-length: 2709

WHOOPS!  It seems I forgot to attach ther patch itself.  Here is it:

--- gdb.texinfo.old	Sun Jan  2 20:55:42 2000
+++ gdb.texinfo	Sun Jan  2 20:57:35 2000
@@ -6373,13 +6373,13 @@
 
 @item CAP(@var{c})
 If @var{c} is a lower case letter, it returns its upper case
-equivalent, otherwise it returns its argument
+equivalent, otherwise it returns its argument.
 
 @item CHR(@var{i})
 Returns the character whose ordinal value is @var{i}.
 
 @item DEC(@var{v})
-Decrements the value in the variable @var{v}.  Returns the new value.
+Decrements the value in the variable @var{v} by one.  Returns the new value.
 
 @item DEC(@var{v},@var{i})
 Decrements the value in the variable @var{v} by @var{i}.  Returns the
@@ -6396,7 +6396,7 @@
 Returns the index of the last member of @var{a}.
 
 @item INC(@var{v})
-Increments the value in the variable @var{v}.  Returns the new value.
+Increments the value in the variable @var{v} by one.  Returns the new value.
 
 @item INC(@var{v},@var{i})
 Increments the value in the variable @var{v} by @var{i}.  Returns the
@@ -6417,8 +6417,8 @@
 
 @item ORD(@var{x})
 Returns the ordinal value of its argument.  For example, the ordinal
-value of a character is its ASCII value (on machines supporting the
-ASCII character set).  @var{x} must be of an ordered type, which include
+value of a character is its @sc{ascii} value (on machines supporting the
+@sc{ascii} character set).  @var{x} must be of an ordered type, which include
 integral, character and enumerated types.
 
 @item SIZE(@var{x})
@@ -6463,7 +6463,7 @@
 @item
 Character constants consist of a single character enclosed by a pair of
 like quotes, either single (@code{'}) or double (@code{"}).  They may
-also be expressed by their ordinal value (their ASCII value, usually)
+also be expressed by their ordinal value (their @sc{ascii} value, usually)
 followed by a @samp{C}.
 
 @item
@@ -8684,7 +8684,7 @@
 suppressed.
 
 Response @var{data} can be run-length encoded to save space.  A @samp{*}
-means that the next character is an ASCII encoding giving a repeat count
+means that the next character is an @sc{ascii} encoding giving a repeat count
 which stands for that many repetitions of the character preceding the
 @samp{*}.  The encoding is @code{n+29}, yielding a printable character
 where @code{n >=3} (which is where rle starts to win).  The printable
@@ -9179,7 +9179,7 @@
 
 @item @code{O}@var{XX...}
 @tab
-@var{XX...} is hex encoding of ASCII data.  This can happen at any time
+@var{XX...} is hex encoding of @sc{ascii} data.  This can happen at any time
 while the program is running and the debugger should continue to wait
 for 'W', 'T', etc.
 


Hope you will apply it.

Thanks again,
--dima
From ac131313@cygnus.com Sat Apr 01 00:00:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: GDB Patches <gdb-patches@sourceware.cygnus.com>
Subject: [PATCH] MI - when MI interface output additional status info
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38B0ED28.94ACAE2B@cygnus.com>
X-SW-Source: 2000-q1/msg00272.html
Content-length: 8177

Hello,

The attatched patch tweeks breakpoint.c and infrun.c so that additional
status information is included when MI reports that the target has
halted.

Any known problems with this one? Yes.  At present the code uses the
test:

	if (interpreter_p && strcmp (interpreter_p, "mi") == 0)

which is pretty MI specific.  It should be using some other more generic
mechanism - the info it provides in this case is probably useful for any
GUI.  I figure resolving that can be held of until the next UI enters
the scene.

	enjoy,
		Andrew
Mon Feb 21 13:57:27 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* breakpoint.c (print_it_typical, watchpoint_check,
 	print_one_breakpoint, mention): When MI include additional
	target status information.
	* infrun.c (print_stop_reason, normal_stop): Ditto.

Index: breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.1.1.24
diff -p -r1.1.1.24 breakpoint.c
*** breakpoint.c	2000/02/03 04:14:25	1.1.1.24
--- breakpoint.c	2000/02/21 07:08:46
*************** print_it_typical (bs)
*** 1909,1914 ****
--- 1909,1916 ----
  #ifdef UI_OUT
        annotate_breakpoint (bs->breakpoint_at->number);
        ui_out_text (uiout, "\nBreakpoint ");
+       if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	ui_out_field_string (uiout, "reason", "breakpoint-hit");
        ui_out_field_int (uiout, "bkptno", bs->breakpoint_at->number);
        ui_out_text (uiout, ", ");
        return PRINT_SRC_AND_LOC;
*************** print_it_typical (bs)
*** 2052,2057 ****
--- 2054,2061 ----
  	{
  	  annotate_watchpoint (bs->breakpoint_at->number);
  #ifdef UI_OUT
+ 	  if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	    ui_out_field_string (uiout, "reason", "watchpoint-trigger");
  	  mention (bs->breakpoint_at);
  	  ui_out_list_begin (uiout, "value");
  	  ui_out_text (uiout, "\nOld value = ");
*************** print_it_typical (bs)
*** 2080,2085 ****
--- 2084,2091 ----
  
      case bp_read_watchpoint:
  #ifdef UI_OUT
+       if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	ui_out_field_string (uiout, "reason", "read-watchpoint-trigger");
        mention (bs->breakpoint_at);
        ui_out_list_begin (uiout, "value");
        ui_out_text (uiout, "\nValue = ");
*************** print_it_typical (bs)
*** 2102,2107 ****
--- 2108,2115 ----
        if (bs->old_val != NULL)     
  	{
  	  annotate_watchpoint (bs->breakpoint_at->number);
+ 	  if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	    ui_out_field_string (uiout, "reason", "access-watchpoint-trigger");
  	  mention (bs->breakpoint_at);
  	  ui_out_list_begin (uiout, "value");
  	  ui_out_text (uiout, "\nOld value = ");
*************** print_it_typical (bs)
*** 2114,2119 ****
--- 2122,2129 ----
        else 
  	{
  	  mention (bs->breakpoint_at);
+ 	  if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	    ui_out_list_begin (uiout, "value");
  	  ui_out_field_string (uiout, "reason", "access-watchpoint-trigger");
  	  ui_out_text (uiout, "\nValue = ");
  	}
*************** print_it_typical (bs)
*** 2148,2157 ****
--- 2158,2175 ----
         here. */
  
      case bp_finish:
+ #ifdef UI_OUT
+       if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	ui_out_field_string (uiout, "reason", "function-finished");
+ #endif
        return PRINT_UNKNOWN;
        break;
  
      case bp_until:
+ #ifdef UI_OUT
+       if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	ui_out_field_string (uiout, "reason", "location-reached");
+ #endif
        return PRINT_UNKNOWN;
        break;
  
*************** watchpoint_check (p)
*** 2360,2365 ****
--- 2378,2385 ----
  	 will be deleted already. So we have no choice but print the
  	 information here. */
  #ifdef UI_OUT
+       if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	ui_out_field_string (uiout, "reason", "watchpoint-scope");
        ui_out_text (uiout, "\nWatchpoint ");
        ui_out_field_int (uiout, "wpnum", bs->breakpoint_at->number);
        ui_out_text (uiout, " deleted because the program has left the block in\n\
*************** print_one_breakpoint (struct breakpoint 
*** 3446,3451 ****
--- 3466,3478 ----
  #endif
      }
    
+ #ifdef UI_OUT
+   /* Output the count also if it is zero, but only if this is
+      mi. FIXME: Should have a better test for this. */
+   if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+     if (show_breakpoint_hit_counts && b->hit_count == 0)
+       ui_out_field_int (uiout, "times", b->hit_count);
+ #endif
  
    if (b->ignore_count)
      {
*************** mention (b)
*** 4446,4455 ****
--- 4473,4496 ----
        break;
  #endif
      case bp_breakpoint:
+ #ifdef UI_OUT
+       if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	{
+ 	  say_where = 0;
+ 	  break;
+ 	}
+ #endif
        printf_filtered ("Breakpoint %d", b->number);
        say_where = 1;
        break;
      case bp_hardware_breakpoint:
+ #ifdef UI_OUT
+       if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	{
+ 	  say_where = 0;
+ 	  break;
+ 	}
+ #endif
        printf_filtered ("Hardware assisted breakpoint %d", b->number);
        say_where = 1;
        break;
*************** mention (b)
*** 4505,4510 ****
--- 4546,4555 ----
      }
  #ifdef UI_OUT
    do_cleanups (old_chain);
+ #endif
+ #ifdef UI_OUT
+   if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+     return;
  #endif
    printf_filtered ("\n");
  }
Index: infrun.c
===================================================================
RCS file: /cvs/src/src/gdb/infrun.c,v
retrieving revision 1.2
diff -p -r1.2 infrun.c
*** infrun.c	2000/02/09 08:52:45	1.2
--- infrun.c	2000/02/21 07:09:17
*************** print_stop_reason (enum inferior_stop_re
*** 3223,3228 ****
--- 3223,3235 ----
      case END_STEPPING_RANGE:
        /* We are done with a step/next/si/ni command. */
        /* For now print nothing. */
+ #ifdef UI_OUT
+       /* Print a message only if not in the middle of doing a "step n"
+ 	 operation for n > 1 */
+       if (!step_multi || !stop_step)
+ 	if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	  ui_out_field_string (uiout, "reason", "end-stepping-range");
+ #endif
        break;
      case BREAKPOINT_HIT:
        /* We found a breakpoint. */
*************** print_stop_reason (enum inferior_stop_re
*** 3232,3237 ****
--- 3239,3246 ----
        /* The inferior was terminated by a signal. */
  #ifdef UI_OUT
        annotate_signalled ();
+       if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	ui_out_field_string (uiout, "reason", "exited-signalled");
        ui_out_text (uiout, "\nProgram terminated with signal ");
        annotate_signal_name ();
        ui_out_field_string (uiout, "signal-name", target_signal_to_name (stop_info));
*************** print_stop_reason (enum inferior_stop_re
*** 3264,3275 ****
--- 3273,3288 ----
        annotate_exited (stop_info);
        if (stop_info)
  	{
+ 	  if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	    ui_out_field_string (uiout, "reason", "exited");
  	  ui_out_text (uiout, "\nProgram exited with code ");
  	  ui_out_field_fmt (uiout, "exit-code", "0%o", (unsigned int) stop_info);
  	  ui_out_text (uiout, ".\n");
  	}
        else
  	{
+ 	  if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	    ui_out_field_string (uiout, "reason", "exited-normally");
  	  ui_out_text (uiout, "\nProgram exited normally.\n");
  	}
  #else
*************** The same program may be running in anoth
*** 3445,3451 ****
--- 3458,3474 ----
  	    default:
  	      internal_error ("Unknown value.");
  	    }
+ #ifdef UI_OUT
+ 	  /* For mi, have the same behavior every time we stop:
+              print everything but the source line. */
+ 	  if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	    source_flag = LOC_AND_ADDRESS;
+ #endif
  
+ #ifdef UI_OUT
+ 	  if (interpreter_p && strcmp (interpreter_p, "mi") == 0)
+ 	    ui_out_field_int (uiout, "thread-id", pid_to_thread_id (inferior_pid));
+ #endif
  	  /* The behavior of this routine with respect to the source
  	     flag is:
  	     SRC_LINE: Print only source line
From hjl@lucon.org Sat Apr 01 00:00:00 2000
From: "H . J . Lu" <hjl@lucon.org>
To: Mark Kettenis <kettenis@wins.uva.nl>
Cc: gdb-patches@sourceware.cygnus.com, gdb@sourceware.cygnus.com
Subject: Re: A revised patch for dlclose
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <20000307173547.A1068@lucon.org>
References: <20000307120800.A27315@valinux.com> <200003080058.e280wga00453@delius.kettenis.local> <20000307170321.A884@lucon.org> <200003080119.e281Jul00524@delius.kettenis.local>
X-SW-Source: 2000-q1/msg00577.html
Content-length: 1172

On Wed, Mar 08, 2000 at 02:19:56AM +0100, Mark Kettenis wrote:
>    Date: Tue, 7 Mar 2000 17:03:21 -0800
>    From: "H . J . Lu" <hjl@lucon.org>
>    Cc: gdb-patches@sourceware.cygnus.com, gdb@sourceware.cygnus.com
>    Content-Type: text/plain; charset=us-ascii
> 
>    > HJ, please stop wasting your time pushing this patch.  The patch has
>    > several bad points, that you cannot fix without considerable changes
>    > to the way solib.c handles and caches the link map.
> 
>    I just pointed out gdb needed to check the unloaded DSOs when handling
>    the BPSTAT_WHAT_CHECK_SHLIBS and BPSTAT_WHAT_CHECK_SHLIBS_RESUME_FROM_HOOK
>    events. It is a serious bug to me and it should be fixed in 5.0. I
>    don't care how it is fixed.
> 
> But I, and I hope most of the other GDB maintainers, do care how it is
> fixed!

That is fine with me as long as it is fixed in 5.0. There is no excuse
not to get gdb to work with dlclose. "I don't like the way it fixes the
bug" doesn't count unless you can provide a different approach. I
think it is unreasonable to have a perfect fix for every bug. We can
work a better one after 5.0 if we don't have the time now.



H.J.
From dima@Chg.RU Sat Apr 01 00:00:00 2000
From: Dmitry Sivachenko <dima@Chg.RU>
To: gdb-patches@sourceware.cygnus.com
Subject: Small changes to gdb.texinfo
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <200001021759.UAA60795@netserv1.chg.ru>
X-SW-Source: 2000-q1/msg00002.html
Content-length: 174

Hello!
The patch below is the proposed changes to gdb.texinfo.  This changes
ASCII->@sc{ascii} and several others small fixes.

Please apply it.

Thank you in advance,
Dima.
From jimb@cygnus.com Sat Apr 01 00:00:00 2000
From: Jim Blandy <jimb@cygnus.com>
To: Jimmy Guo <guo@cup.hp.com>
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: 2nd try: (patch) hpjyg03: (buildsym|language).[ch]
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <npg0uqp30k.fsf@zwingli.cygnus.com>
References: <Pine.LNX.4.10.9911011130300.30664-100000@hpcll168.cup.hp.com> <npso2pkf00.fsf@zwingli.cygnus.com>
X-SW-Source: 2000-q1/msg00245.html
Content-length: 627

> > Revision of patch hpjyg03:
> >   Use buildsym.c:add_free_pendings() to manage addition to free_pendings; 
> >   Yanked out subfiles change to end_symtab() in the original patch
> >   submission.
> 
> Okay.  I think David Taylor still needs to approve the language.[ch]
> changes, but I approve the buildsym.[ch] changes.

I applied this.

2000-02-18  Jim Blandy  <jimb@redhat.com>

	From Jimmy Guo <guo@cup.hp.com>:
	* buildsym.h (add_free_pendings): Declare.
	* buildsym.c (add_free_pendings): New function.
	(make_blockvector): 32x64 fix using longest_local_hex_string().
	(start_subfile): initialize variable 'subfile'.
From ac131313@cygnus.com Sat Apr 01 00:00:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: GDB Patches <gdb-patches@sourceware.cygnus.com>
Subject: Re: Heads up - Alpha ISO-C fixes
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38C060E8.845E7324@cygnus.com>
References: <38BF7D8C.BE18FAAF@cygnus.com>
X-SW-Source: 2000-q1/msg00490.html
Content-length: 5157

Andrew Cagney wrote:

> diff -upr gdb-19991116.orig/gdb/findvar.c gdb-19991116/gdb/findvar.c
> +++ gdb-19991116/gdb/findvar.c  Tue Nov 23 14:50:48 1999

The attatched cleans up part of findvar.c

	Andrew

PS: part of the problem is that include/ansidecl.h is defining ``PTR''
as ``char *''.  Ignoring that, these changes are due anyway.
Sat Mar  4 11:49:21 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* defs.h (store_address, store_unsigned_integer, store_address):
 	Replace PTR with void* in delcaration.
	* findvar.c (extract_signed_integer, extract_unsigned_integer,
 	extract_long_unsigned_integer, extract_address,
 	store_signed_integer, store_unsigned_integer, store_address):
 	Convert definition to ISO-C.  Replace PTR with void*.

Index: gdb/defs.h
===================================================================
RCS file: /cvs/src/src/gdb/defs.h,v
retrieving revision 1.6
diff -p -r1.6 defs.h
*** defs.h	2000/03/04 00:40:40	1.6
--- defs.h	2000/03/04 00:56:04
*************** extern int extract_long_unsigned_integer
*** 1038,1048 ****
  
  extern CORE_ADDR extract_address (void *, int);
  
! extern void store_signed_integer (PTR, int, LONGEST);
  
! extern void store_unsigned_integer (PTR, int, ULONGEST);
  
! extern void store_address (PTR, int, LONGEST);
  
  /* Setup definitions for host and target floating point formats.  We need to
     consider the format for `float', `double', and `long double' for both target
--- 1038,1048 ----
  
  extern CORE_ADDR extract_address (void *, int);
  
! extern void store_signed_integer (void *, int, LONGEST);
  
! extern void store_unsigned_integer (void *, int, ULONGEST);
  
! extern void store_address (void *, int, LONGEST);
  
  /* Setup definitions for host and target floating point formats.  We need to
     consider the format for `float', `double', and `long double' for both target
Index: gdb/findvar.c
===================================================================
RCS file: /cvs/src/src/gdb/findvar.c,v
retrieving revision 1.3
diff -p -r1.3 findvar.c
*** findvar.c	2000/03/02 06:50:50	1.3
--- findvar.c	2000/03/04 00:56:07
*************** static int read_relative_register_raw_by
*** 57,66 ****
  you lose
  #endif
  
!   LONGEST
! extract_signed_integer (addr, len)
!      PTR addr;
!      int len;
  {
    LONGEST retval;
    unsigned char *p;
--- 57,64 ----
  you lose
  #endif
  
! LONGEST
! extract_signed_integer (void *addr, int len)
  {
    LONGEST retval;
    unsigned char *p;
*************** That operation is not available on integ
*** 94,102 ****
  }
  
  ULONGEST
! extract_unsigned_integer (addr, len)
!      PTR addr;
!      int len;
  {
    ULONGEST retval;
    unsigned char *p;
--- 92,98 ----
  }
  
  ULONGEST
! extract_unsigned_integer (void *addr, int len)
  {
    ULONGEST retval;
    unsigned char *p;
*************** That operation is not available on integ
*** 130,139 ****
     function returns 1 and sets *PVAL.  Otherwise it returns 0.  */
  
  int
! extract_long_unsigned_integer (addr, orig_len, pval)
!      PTR addr;
!      int orig_len;
!      LONGEST *pval;
  {
    char *p, *first_addr;
    int len;
--- 126,132 ----
     function returns 1 and sets *PVAL.  Otherwise it returns 0.  */
  
  int
! extract_long_unsigned_integer (void *addr, int orig_len, LONGEST *pval)
  {
    char *p, *first_addr;
    int len;
*************** extract_long_unsigned_integer (addr, ori
*** 177,185 ****
  }
  
  CORE_ADDR
! extract_address (addr, len)
!      PTR addr;
!      int len;
  {
    /* Assume a CORE_ADDR can fit in a LONGEST (for now).  Not sure
       whether we want this to be true eventually.  */
--- 170,176 ----
  }
  
  CORE_ADDR
! extract_address (void *addr, int len)
  {
    /* Assume a CORE_ADDR can fit in a LONGEST (for now).  Not sure
       whether we want this to be true eventually.  */
*************** extract_address (addr, len)
*** 187,196 ****
  }
  
  void
! store_signed_integer (addr, len, val)
!      PTR addr;
!      int len;
!      LONGEST val;
  {
    unsigned char *p;
    unsigned char *startaddr = (unsigned char *) addr;
--- 178,184 ----
  }
  
  void
! store_signed_integer (void *addr, int len, LONGEST val)
  {
    unsigned char *p;
    unsigned char *startaddr = (unsigned char *) addr;
*************** store_signed_integer (addr, len, val)
*** 217,226 ****
  }
  
  void
! store_unsigned_integer (addr, len, val)
!      PTR addr;
!      int len;
!      ULONGEST val;
  {
    unsigned char *p;
    unsigned char *startaddr = (unsigned char *) addr;
--- 205,211 ----
  }
  
  void
! store_unsigned_integer (void *addr, int len, ULONGEST val)
  {
    unsigned char *p;
    unsigned char *startaddr = (unsigned char *) addr;
*************** store_unsigned_integer (addr, len, val)
*** 250,259 ****
     gdb-local memory pointed to by "addr"
     for "len" bytes. */
  void
! store_address (addr, len, val)
!      PTR addr;
!      int len;
!      LONGEST val;
  {
    store_unsigned_integer (addr, len, val);
  }
--- 235,241 ----
     gdb-local memory pointed to by "addr"
     for "len" bytes. */
  void
! store_address (void *addr, int len, LONGEST val)
  {
    store_unsigned_integer (addr, len, val);
  }
From ac131313@cygnus.com Sat Apr 01 00:00:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: Nick Clifton <nickc@cygnus.com>
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: Add support for WinCE toolchains
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38B32F68.71A4EB6A@cygnus.com>
References: <200002222339.PAA09009@elmo.cygnus.com>
X-SW-Source: 2000-q1/msg00317.html
Content-length: 3780

Nick Clifton wrote:
> 
> Hi Guys,
> 
>   May I have permission to apply the following patch please ?  It adds
>   support for toolchains which are targeted at Microsoft's WinCE
>   execution environment.  For the moment this means the sh-pe, mips-pe
>   and arm-wince-pe toolchains.
> 
> Cheers
>         Nick
> 
> 2000-02-22  Nick Clifton  <nickc@cygnus.com> Chris Faylor <cgf@cygnus.com>

>         * config/arm/tm-arm.h: Add WinCE support.
>         * config/mips/tm-mips.h: Add WinCE support.
>         * config/sh/tm-sh.h: Add WinCE support.

Nick,

I'm not sure about these changes.  Would having
config/{arm,mips,sh}/tm-wince.h files be better?
The patches look very wince specific.

	Andrew

PS Don't forget to put any new files through GNU indent and to touch up
the contributor notices.


> Index: config/arm/tm-arm.h
> ===================================================================
> RCS file: /cvs/src//src/gdb/config/arm/tm-arm.h,v
> retrieving revision 1.1.1.9
> diff -p -r1.1.1.9 tm-arm.h
> *** tm-arm.h    2000/02/05 07:29:52     1.1.1.9
> --- tm-arm.h    2000/02/22 23:31:33
> *************** void arm_fix_call_dummy (char *dummy, CO
> *** 475,480 ****
> --- 475,491 ----
> 
>   CORE_ADDR arm_get_next_pc (CORE_ADDR pc);
> 
> + /* Windows CE needs to do single stepping by forcing a trap into memory and
> +    it is little-endian. */
> +
> + #ifdef _WIN32_WCE
> + #define SOFTWARE_SINGLE_STEP_P 1
> + #define SOFTWARE_SINGLE_STEP(sig, bp_p) wince_software_single_step (sig, bp_p)
> + void wince_software_single_step (unsigned int, int);
> + #undef TARGET_BYTE_ORDER_SELECTABLE
> + #define TARGET_BYTE_ORDER LITTLE_ENDIAN
> + #endif
> +
>   /* Macros for setting and testing a bit in a minimal symbol that marks
>      it as Thumb function.  The MSB of the minimal symbol's "info" field
>      is used for this purpose. This field is already being used to store
> 
> Index: config/mips/tm-mips.h
> ===================================================================
> RCS file: /cvs/src//src/gdb/config/mips/tm-mips.h,v
> retrieving revision 1.1.1.11
> diff -p -r1.1.1.11 tm-mips.h
> *** tm-mips.h   1999/12/22 21:45:14     1.1.1.11
> --- tm-mips.h   2000/02/22 23:31:34
> *************** struct value;
> *** 45,50 ****
> --- 45,61 ----
>   #define MIPS_EABI 0
>   #endif
> 
> + /* Windows CE needs to do single stepping by forcing a trap into memory and
> +    it is little-endian. */
> +
> + #ifdef _WIN32_WCE
> + #define SOFTWARE_SINGLE_STEP_P 1
> + #define SOFTWARE_SINGLE_STEP(sig, bp_p) wince_software_single_step (sig, bp_p)
> + void wince_software_single_step (unsigned int, int);
> + #undef TARGET_BYTE_ORDER_SELECTABLE
> + #define TARGET_BYTE_ORDER LITTLE_ENDIAN
> + #endif
> +
>   #if !defined (TARGET_MONITOR_PROMPT)
>   #define TARGET_MONITOR_PROMPT "<IDT>"
>   #endif
> 
> Index: config/sh/tm-sh.h
> ===================================================================
> RCS file: /cvs/src//src/gdb/config/sh/tm-sh.h,v
> retrieving revision 1.1.1.8
> diff -p -r1.1.1.8 tm-sh.h
> *** tm-sh.h     1999/12/14 01:05:42     1.1.1.8
> --- tm-sh.h     2000/02/22 23:31:35
> *************** extern CORE_ADDR sh_skip_prologue PARAMS
> *** 54,59 ****
> --- 54,70 ----
> 
>   #define SAVED_PC_AFTER_CALL(frame) (ADDR_BITS_REMOVE(read_register(PR_REGNUM)))
> 
> + /* Windows CE needs to do single stepping by forcing a trap into memory and
> +    it is little-endian. */
> +
> + #ifdef _WIN32_WCE
> + #define SOFTWARE_SINGLE_STEP_P 1
> + #define SOFTWARE_SINGLE_STEP(sig, bp_p) wince_software_single_step (sig, bp_p)
> + void wince_software_single_step (unsigned int, int);
> + #undef TARGET_BYTE_ORDER_SELECTABLE
> + #define TARGET_BYTE_ORDER LITTLE_ENDIAN
> + #endif
> +
>   /* Stack grows downward.  */
> 
>   #define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
From dan@cgsoftware.com Sat Apr 01 00:00:00 2000
From: dan@cgsoftware.com (Daniel Berlin+list.gdb-patches)
To: Jimmy Guo <guo@cup.hp.com>
Cc: "Daniel Berlin+list.gdb-patches" <dan@cgsoftware.com>, Chris Faylor <cgf@cygnus.com>, gdb-patches@sourceware.cygnus.com
Subject: Re: patch: regression: C++ overload
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <8zz96nfm.fsf@dan.resnet.rochester.edu>
References: <Pine.LNX.4.10.10003232033500.12024-100000@hpcll168.cup.hp.com>
X-SW-Source: 2000-q1/msg00974.html
Content-length: 949

Jimmy Guo <guo@cup.hp.com> writes:


> >There weren't any regressions caused by the problem, you just get 2
> >less unexpected passes, so i didn't notice any problems.
> 
> I should have caught that when I merged HP WDB's source up to 3/21's
> yesterday.
> 
> Actually the testing caught this when I ran the tests at our HP aCC
> pass, for which we are used to PASSs, but got XFAs for these test points
> with odd number of arguments (and then appeared on and off at repeated
> print commands, which points to some sort of UMR problem).

I can't run those tests yet, i haven't figured out how to convince it
to let me, or they aren't the tests you are talking about.
I'm adding some testsuite tests to gdb.c++/overload.exp for multiarg
overloads.
I had a feeling something was wrong when i could do stuff on beos i
couldn't do on FreeBSD, but like i said, i hadn't had time to
investigate.

I'm looking at the RTTI patch you sent me.


> 
> - Jimmy
From ac131313@cygnus.com Sat Apr 01 00:00:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: Robert Lipe <robertl@sco.com>
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: PATCH: GNU C extention in uw-thread.c
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38A7E54F.AEE506F0@cygnus.com>
References: <20000123153115.A7072@rjlhome.sco.com>
X-SW-Source: 2000-q1/msg00141.html
Content-length: 959

Robert Lipe wrote:
> 
> CALL_BASE uses __FUNCTION__ which is a GNU C extension.
> 
> This might not be the best way to deal with this, but it allows compilation
> on non-GNU compilers.

FYI, an equivalent patch was applied by Nick Duff.

	thanks,
		Andrew

> 
> RJL
> 
> Index: uw-thread.c
> ===================================================================
> RCS file: /cvs/gdb/gdb/gdb/uw-thread.c,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 uw-thread.c
> --- uw-thread.c 2000/01/18 00:54:24     1.1.1.1
> +++ uw-thread.c 2000/01/23 21:31:57
> @@ -152,6 +152,10 @@ do {                                       \
>   *
>   * Otherwise, issue an error message and return nonlocally.
>   */
> +#if !defined (__FUNCTION__)
> +#  define __FUNCTION__
> +#endif
> +
>  #define CALL_BASE(call)                                        \
>  do {                                                   \
>    if (!lwp_infpid ())                                  \
From msnyder@cygnus.com Sat Apr 01 00:00:00 2000
From: Michael Snyder <msnyder@cygnus.com>
To: Andrew Cagney <ac131313@cygnus.com>
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: [PATCH] Document the ThreadInfo remote protocol queries
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38D90CE6.4D18@cygnus.com>
References: <200003202316.PAA07888@cleaver.cygnus.com> <38D6FCE2.EBD9830F@cygnus.com> <38D7C38C.6CB0@cygnus.com> <38D85C2F.FF89881D@cygnus.com>
X-SW-Source: 2000-q1/msg00906.html
Content-length: 130

Andrew Cagney wrote:

> Should ``C'' also be suceeded by something like ``qThread''?  Is ``C''
> still used?

'qC' is still used.
From kettenis@wins.uva.nl Sat Apr 01 00:00:00 2000
From: Mark Kettenis <kettenis@wins.uva.nl>
To: gdb-patches@sourceware.cygnus.com
Subject: [RFA] Eliminate TARGET_{EXTRACT|STORE}_FLOATING hooks
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <200003291906.e2TJ6PK00265@delius.kettenis.local>
X-SW-Source: 2000-q1/msg01107.html
Content-length: 1339

Hi,

Now that I've removed the evil TARGET_{EXTRACT|STORE}_FLOATING
definitions from `config/i386/tm-linux.h' we might as well remove the
hooks from `findvar.c' too.

OK to check this in?

Mark


2000-03-29  Mark Kettenis  <kettenis@gnu.org>

	* findvar.c (extract_floating): Remove reference to
	TARGET_EXTRACT_FLOATING.
	(store_floating): Remove reference to TARGET_STORE_FLOATING.


Index: findvar.c
===================================================================
RCS file: /cvs/src/src/gdb/findvar.c,v
retrieving revision 1.4
diff -u -p -r1.4 findvar.c
--- findvar.c	2000/03/04 01:05:48	1.4
+++ findvar.c	2000/03/29 18:25:19
@@ -289,10 +289,6 @@ extract_floating (void *addr, int len)
       else
 	floatformat_to_doublest (TARGET_LONG_DOUBLE_FORMAT, addr, &dretval);
     }
-#ifdef TARGET_EXTRACT_FLOATING
-  else if (TARGET_EXTRACT_FLOATING (addr, len, &dretval))
-    return dretval;
-#endif
   else
     {
       error ("Can't deal with a floating point number of %d bytes.", len);
@@ -333,10 +329,6 @@ store_floating (void *addr, int len, DOU
       else
 	floatformat_from_doublest (TARGET_LONG_DOUBLE_FORMAT, &val, addr);
     }
-#ifdef TARGET_STORE_FLOATING
-  else if (TARGET_STORE_FLOATING (addr, len, val))
-    return;
-#endif 
   else
     {
       error ("Can't deal with a floating point number of %d bytes.", len);
From ac131313@cygnus.com Sat Apr 01 00:00:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: Michael Snyder <msnyder@cygnus.com>
Cc: Mark Kettenis <kettenis@wins.uva.nl>, gdb-patches@sourceware.cygnus.com
Subject: Re: [PATCH] Replace ../include/wait.h with gdb_wait.h.
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38A241CA.1634F124@cygnus.com>
References: <38A12872.13D194C4@cygnus.com> <200002091429.e19ETk916570@delius.kettenis.local>
X-SW-Source: 2000-q1/msg00107.html
Content-length: 5234

Michael,

I only committed the #include fix in:

> 2000-02-09  Mark Kettenis  <kettenis@gnu.org>
> 
>         * linux-thread.c: Include defs.h before gdb_wait.h.
>         (linuxthreads_attach): Use WSETSTOP instead of __W_STOPCODE.
>         (linuxthreads_create_inferior): Likewise.
> 
>         * gdb_wait.h (WSETEXIT): Define in terms of W_EXITCODE if defined.
>         (WSETSTOP): Define in terms of W_STOPCODE if defined.

I'll leave the other changes to you.  You'd know if there was a reason
behind the way it was done.  If it is actually all ok, then I can check
the rest in.

	Andrew


Mark Kettenis wrote:
> 
>    Date: Wed, 09 Feb 2000 19:42:26 +1100
>    From: Andrew Cagney <ac131313@cygnus.com>
> 
>    FYI,
> 
>    I've just checked in the attatched patch.  It replaces the sometimes
>    convoluted sequence:
> 
>    [snip]
> 
> Great!
> 
>    So far this has only been verified on for the d10v-elf target.  Please
>    report / submit patches for other targets.
> 
> There is a problem with `linux-thread.c', where `gdb_wait.h' is included
> before config.h.  This means that HAVE_SYS_WAIT_H and HAVE_WAIT_H are
> still undefined and the system headers are never used.
> 
> Since `linux-thread.c' uses __W_STOPCODE, and `gdb_wait.h' doesn't
> provide a fallback macro I get a linker failure.  Moving up the
> include for `defs.h' solves this problem.
> 
> The rest of GDB seems to be using WSETSTOP, so it seems appropriate to
> use that macro instead of __W_STOPCODE in `linux-thread.c'.  I changed
> the definition of WSETSTOP and WSETEXIT in `gdb_wait.h' to use
> W_STOPCODE and W_EXITCODE if they are available.  All BSD-derived
> systems and systems that try to be source-compatible with BSD (like
> Linux and the Hurd) should have those macros.  The change is merely
> cosmetic but there might be systems out there that really use a
> different way to store this information.
> 
> Feel free to do with this patch what you want as long as you make sure
> that `gdb_wait.h' is included after `config.h' in `linux-thread.c' :-).
> 
> Mark
> 
> PS Andrew, concering coding-style, current practice in a lot of GNU
> packages is to use extra whitespace after `#' like in the following
> example:
> 
> #ifndef foobar
> # ifdef foo
> #  define foobar foo
> # else
> #  define foobar bar
> # endif
> #endif
> 
> This makes things a bit more readable.  The patch below doesn't do
> this, but is it OK to use this style in GDB in the future?
> 
> 2000-02-09  Mark Kettenis  <kettenis@gnu.org>
> 
>         * linux-thread.c: Include defs.h before gdb_wait.h.
>         (linuxthreads_attach): Use WSETSTOP instead of __W_STOPCODE.
>         (linuxthreads_create_inferior): Likewise.
> 
>         * gdb_wait.h (WSETEXIT): Define in terms of W_EXITCODE if defined.
>         (WSETSTOP): Define in terms of W_STOPCODE if defined.
> 
> Index: gdb/linux-thread.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/linux-thread.c,v
> retrieving revision 1.2
> diff -u -r1.2 linux-thread.c
> --- gdb/linux-thread.c  2000/02/09 08:52:46     1.2
> +++ gdb/linux-thread.c  2000/02/09 14:23:02
> @@ -47,13 +47,13 @@
>     linuxthreads package heavily relies on wait() synchronization to keep
>     them correct.  */
> 
> +#include "defs.h"
>  #include <sys/types.h> /* for pid_t */
>  #include <sys/ptrace.h> /* for PT_* flags */
>  #include "gdb_wait.h" /* for WUNTRACED and __WCLONE flags */
>  #include <signal.h> /* for struct sigaction and NSIG */
>  #include <sys/utsname.h>
> 
> -#include "defs.h"
>  #include "target.h"
>  #include "inferior.h"
>  #include "gdbcore.h"
> @@ -1129,7 +1129,7 @@
>    linuxthreads_breakpoints_inserted = 1;
>    linuxthreads_breakpoint_last = -1;
>    linuxthreads_wait_last = -1;
> -  linuxthreads_exit_status = __W_STOPCODE(0);
> +  WSETSTOP (linuxthreads_exit_status, 0);
> 
>    child_ops.to_attach (args, from_tty);
> 
> @@ -1189,7 +1189,7 @@
>           linuxthreads_find_trap (inferior_pid, 1);
> 
>           linuxthreads_wait_last = -1;
> -         linuxthreads_exit_status = __W_STOPCODE(0);
> +         WSETSTOP (linuxthreads_exit_status, 0);
>         }
> 
>        linuxthreads_inferior_pid = 0;
> @@ -1601,7 +1601,7 @@
>    linuxthreads_breakpoints_inserted = 1;
>    linuxthreads_breakpoint_last = -1;
>    linuxthreads_wait_last = -1;
> -  linuxthreads_exit_status = __W_STOPCODE(0);
> +  WSETSTOP (linuxthreads_exit_status, 0);
> 
>    if (linuxthreads_max)
>      linuxthreads_attach_pending = 1;
> Index: gdb/gdb_wait.h
> ===================================================================
> RCS file: /cvs/src/src/gdb/gdb_wait.h,v
> retrieving revision 1.1
> diff -u -r1.1 gdb_wait.h
> --- gdb/gdb_wait.h      2000/02/09 08:52:45     1.1
> +++ gdb/gdb_wait.h      2000/02/09 14:23:07
> @@ -86,11 +86,19 @@
>  #endif
> 
>  #ifndef        WSETEXIT
> +#ifdef W_EXITCODE
> +#define WSETEXIT(w,status) ((w) = W_EXITCODE(status, 0))
> +#else
>  #define WSETEXIT(w,status) ((w) = (0 | ((status) << 8)))
>  #endif
> +#endif
> 
>  #ifndef        WSETSTOP
> +#ifndef W_STOPCODE
> +#define WSETSTOP(w,sig)    ((w) = W_STOPCODE(sig))
> +#else
>  #define WSETSTOP(w,sig)           ((w) = (0177 | ((sig) << 8)))
> +#endif
>  #endif
> 
>  /*
From jsm@cygnus.com Sat Apr 01 00:00:00 2000
From: Jason Molenda <jsm@cygnus.com>
To: Jim Kingdon <kingdon@redhat.com>
Cc: ezannoni@cygnus.com, gdb-patches@sourceware.cygnus.com
Subject: Re: Remove gdb.base/annota2.exp
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <20000104124255.A556@cygnus.com>
References: <200001020540.AAA31521@devserv.devel.redhat.com> <14450.18810.565455.834962@kwikemart.cygnus.com> <200001041950.OAA22296@devserv.devel.redhat.com>
X-SW-Source: 2000-q1/msg00007.html
Content-length: 893

Hi folks, I'm just back from vacation.  I'll be digging through e-mail
for the next day or so. :-)


On Tue, Jan 04, 2000 at 02:50:32PM -0500, Jim Kingdon wrote:
> > It seems that the file was correctly removed from the cvs repository
> > some time ago. I suspect something went wrong on sourceware.
> 
> If you run "cvs import" (like Jason does to get the sources to
> sourceware) and a file has been removed, you need to manually remove
> it.  Not that I _know_ that's what happened but it sounds like it.

Yeah, that's it.  The whole importing business was supposed to be
temporary--I remember a year ago Stan saying that we were only going to
do it for another month or two--so I look at each snapshot diff by hand,
and if I see files being removed, I remove them from the sourceware cvs
repo by hand.

I'm not too surprised I missed one, thanks for catching it.

Jason
Free the Software!
From fnasser@cygnus.com Sat Apr 01 00:00:00 2000
From: Fernando Nasser <fnasser@cygnus.com>
To: Andrew Cagney <ac131313@cygnus.com>
Cc: Fernando Nasser <fnasser@redhat.com>, gdb-patches@sourceware.cygnus.com
Subject: Re: RFA: Prologue cache fix
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38C412AC.952A1FA4@cygnus.com>
References: <38B4073E.281C4CE0@redhat.com> <38BB65F6.44D991A2@cygnus.com>
X-SW-Source: 2000-q1/msg00544.html
Content-length: 2032

Andrew Cagney wrote:
> 
> Fernando Nasser wrote:
> >
> > This patch fixes a problem that happens when gdb reconnects to a
> > target.  Targets that have a prologue cache must invalidate its contents
> > or they can assume wrong things based on stale data.
> 
> I'm wondering when exactly this prologue_cache provides real benefit?
> 
So do I.  I have tried to track down the history of this but it was lost in a merge of old...

The FR30 target has the same cache and I am not sure were the first version appeared.


> The only other possibility I can think of is is something like an
> inferior function call where GDB comes back to that exact same address.
> For a recursive call, the register info would be wrong.
> 
> So anyone enlighten me as to when exactly this thing kicks in? :-)
> 

The author justified this with the following comment:

   /* (...) When performing
   a backtrace, GDB will usually ask to scan the same function twice
   in a row (once to get the frame chain, and once to fill in the
   extra frame information).  */

This would slow backtraces on targets with slow comm links.

Maybe the right fix should have been prevent the two calls in the first place.  But, if I am not mistaken, this is not
trivial.  So, the author came with this cache.

I wonder if the author thought of recursion.  At a first sight it seems wrong.

> If the prologue_cache is purged at the same time as the frame obstack
> then the two have the same lifetime.  If that is the case then I think
> that the prologue analysis might as well be left in the frame object in
> ``struct frame_extra_info''.
> 

Seems more logical.

I vote to eliminate the prologue cache (as it seems that it has at least two serious bugs) and cope with the performance
penalty until a valid optimization is found.

What do you think?



-- 
Fernando Nasser
Red Hat - Toronto                       E-Mail:  fnasser@cygnus.com
2323 Yonge Street, Suite #300           Tel:  416-482-2661 ext. 311
Toronto, Ontario   M4P 2C9              Fax:  416-482-6299
From fnasser@cygnus.com Sat Apr 01 00:00:00 2000
From: Fernando Nasser <fnasser@cygnus.com>
To: Nick Clifton <nickc@cygnus.com>
Cc: ac131313@cygnus.com, gdb-patches@sourceware.cygnus.com
Subject: Re: RFC: Patch to arm-tdep.c -- Register flavors
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38AAEADC.9568B1B3@cygnus.com>
References: <200002161819.KAA30075@elmo.cygnus.com>
X-SW-Source: 2000-q1/msg00193.html
Content-length: 904

Nick Clifton wrote:
> 
> : Also are the functions:
> :
> : > ! /* From opcodes/arm-dis.c */
> : > !
> : > ! extern int get_arm_regname_num_options (void);
> : > !
> : > ! extern int set_arm_regname_option (int option);
> : >
> : > ! extern int get_arm_regnames (int option, const char **setname,
> : > !                            const char **setdescription,
> : > !                            const char ***regnames);
> :
> : available in a header file (Nick?).  That would indicate an ongoing
> : committment, on the part of the opcode maintainers, to support these
> : interfaces.
> 
> They will be...  I am about to check in the following patch:
> 
Thank you Nick.  I will adapt :-)

-- 
Fernando Nasser
Red Hat - Toronto                       E-Mail:  fnasser@cygnus.com
2323 Yonge Street, Suite #300           Tel:  416-482-2661 ext. 311
Toronto, Ontario   M4P 2C9              Fax:  416-482-6299
From ac131313@cygnus.com Sat Apr 01 00:00:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: GDB Patches <gdb-patches@sourceware.cygnus.com>
Subject: [PATCH] MI - new directory gdb/mi/
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <38B0EE2A.67E55C03@cygnus.com>
X-SW-Source: 2000-q1/msg00273.html
Content-type: multipart/mixed; boundary="----------=_1583534362-29877-25"

This is a multi-part message in MIME format...

------------=_1583534362-29877-25
Content-length: 202

Hello,

The attatched is the contents of this new directory.

	Andrew

Mon Feb 21 13:57:27 2000  Andrew Cagney  <cagney@b1.cygnus.com>

        * mi: New directory. MI interface to GDB.
gdb.mi.tar.bz2


------------=_1583534362-29877-25
Content-Type: application/x-bzip2; charset=binary; name="gdb.mi.tar.bz2"
Content-Disposition: inline; filename="gdb.mi.tar.bz2"
Content-Transfer-Encoding: base64
Content-Length: 85083

QlpoOTFBWSZTWaNtyz8Cxht/3/+2I0l///////////////8BAIIBAQQCIRIE
ACACCGHSHvgAAAAAAUAAAAAAAAAAAAAAAAAAAKoAAAAAAAAAAKAAAAAAAAAJ
AAAAAAAAAAAUAoAAAoAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkBRQAAAAABQAUAAAA
RSKAAAAABQAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAACgAAAAAKAAAAAAAAAAA
AAAAAAAAAAAAAACQAABQAAAAACgAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAo
VKlAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAUAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQEGAAmAAJgAAAAAAAA
AAAAAAACDAATAAEwAAAAAAAAAAAAAAABBgAJgACYAAAAAAAAAAAAAAAAgwAE
wABMAAAAAAAAAAAAAAAACqJCCNANGQTI9NAST08jTTVPyKfpop7Uh6jeqM2V
AGg9QGgGgGPSgVEkEEBAEACAE0ABNGjIAI0aIxDQynponlT1P1IBkD5YIe4y
X9n4EV+18ip8iX7pUSlKUkv377vxIfwvBHgUq1/4wjDFWJbEsS+RCSf2Hxfc
mGoRppCKsI/ibH8T+J/G2V4K8GNP5VK02u04bN8/9Q2O7sCYSJTFJYiqRUsi
LJJEVQiqiRaSRKoEqInY7o/lbP/qLAcKEYKkg2Uf7iiSbKIkSlkbFUqKKSUF
RCbJE//L0SE9qjRSKqpSlFVKKioVKoqoVVVFKpSRSoU/xJ/KVhpKqKpVQqkp
UlVD/2VJMVEpQlKpQpQqpKpKVFKiVUSqqiiopVUiqVSSVKKUilFRUiqRUqpK
RSgqiqiqSKqqqpSpVRSqpSqqVUkpQqiKlEVRKpSqlSpUoVJRUKqVRUqJSpOU
xEpgMUhiqURVISqVSRKqAKMYlTYp/aiqJpWNk0lUqsYMFJVSlKqFYqTFIVjE
rCqTFSqVUlUwYTEVKilYMMFFMYpVYYUqlUrDDFKqVUhVQqkVVKkUqlSVVSkl
SorGJiqlQqjExiUqKYmIYpFVKqSYxVVSqjGKxSVTEmAVJQORsqf+Klo/0U+r
7Nv7B1KFVVVKJ2PFTRpphjljZp4sK3GNmlcMaN3i4ctjYxpu2bJo4OWximlT
hjCqYxjduVwNOVNE2UqopWzdW4rEbnLRiaVWE00bKnqn8akmP/FyYbp/5O7R
pjHowlUPRWildxy4Y0ps7lbtKw2N27caeCtlTSJUjFaP/uwx3V+Zy6mlN3RT
SnRSbFd3Zs0Y2YqbN2m6tmzDdRinBTSm6m7YnKv+KbB0f+b1YaJXi3T86fg+
ad3KUpUcsYlB4qw9XkjRjGzZsYrY82w2bG6VpWlaYxN1bMYrTE3bMRsVVTFS
StmGNE2aR4OGN1Tc8jqmm6nVy9r/0erbSvpX2c0FTdS1lpuLytcZR+1zq2Qu
t9U0Hq2fY9iBN1CeSpHxIqpVSVUpUT/WrCvvVGKklVKr5OGJpSKpVFKkpSVU
qjqqI3VI0qUqUpFUKqNKTFQ0pwqaKRVSVWlGFSlSqKqQp2TzY+Ctjljqpw6t
n/5Y0k83V9CvNWKKn0MYrc//D/Bjo+phPN9Tl9ZwbqpWnVWn1vobu72vg+lJ
PV/6OjxdHCuyvFjGzd4NjdjzPe4fY8HV0SVKiOQcqiqdGMQ+SmlfMdlVUKpV
KqVSqKqfJUwqkxWFVVUqqxTBUqVUpUqlUpVQqoVJQpjGKkpVVijFRKpVSKqq
qqqqlVVCqqklVIqpwx0FPIwwopQ4bKqabq+bZOjdhWMVSqlKpU3Nm6lKpuxi
JJ0UxuNgqqlVBUpJXDEmKJVKpTGDFFYrEqjCiTFRjGMVVMfJiSaVGlVTEpOF
TFIaKjTTA0+1/c02Bjqwe8OSnJ3Ox0f8nLHdw7OyqYbJsxjdjCqVw0w2VimK
V8FYbt3o00qUqqlSpU4UxVYxWJMUeSQnKkdFJ4qSKo/+x+g9xweZTcw+wpoo
9p8TDco2KfcaNjRhyfI2NGjY0cnsPoODc3KYYYNymH0H1nQ6k3KdzqU6nmKN
FH3lFFH/I+ZhSU+J4n2HsNh5FIngKTRgw+B2HwDDRh5lGxRSkpRopMKPgbDz
Dg8DcYU4KPIbmE6HJSnBhh5EeQwNFFKJSKcD0NDRGH5GE/aUbBQpwYUophCl
GChhhP3GGFNDg0ODYwaJg+s0U7FFKcGCnc9DD3HBT6B2OBue07H0HUdSmjk+
R+k6HJ9BToJoSlD+YoeRTqdDsaPUpJ7T3GHU8zD1KMKU5MNFDqbmFFMKYMKb
mgew0TCU0YUKKbGIpTcobDqYYcntODY3Njk0h9BUeJUHUo7nydn2HBSoVSVU
ilaMPtfY7PtbHU9Gnq0HU3U3btJpSodVY6NmKrgrsqtMVVYrGyvQ3MbMOBpw
oxSqqsYwVNnQbOHyfif8z9J8ldzZ96vc2fg9z4Pg9jZsYVjs83ybq2V5vxae
DqcOGK+0+12burhw83i83LD6m7Cpjlp9ToeauHk8XueTyY7u7zeD/8uGHV2e
jlWzl/6vVjyad3VsOWMSnVhyqUpXZw3bDZVUibqlV1Vwrly0rY4fe5clPB9j
Hi4fsej2Ozg9Hg82nvYxs5Y0aexwd3kpW7hups09j1abO72P/o8Gx3fI5ejz
dnxfi5ejZ5PrfS+tWH2KFepp9bTY9H3PvaT9bwRs0aNFaYxjdjGMbD+tVV+5
pNz8jGzSvNWOSkFVI3aYJpKjSmKit2yVStIY02MNPk2YhRU2KxVbJu0w7sbK
HcpilKkKo4SpI0qTSqrunJUpVU5cpUqpJyxgVUVKGKMVKqd1JiUPJ9DzdH4P
U08B8kfa8nZJpsV+Ds+D6m5uV9CpMcomPrfqfW3OjGzu6KJyeB9yfNOzl8Xi
5d2nZ4var61MT6j4ve2bH6WmPobMKqqaKxjTTEwaaYxMV7FYlaUwkpX1MT1V
SpNKOjGPqUcKVWxVOzTo2cKdVTBsYgxiqwlMMVVcMRsqMUxsxjDFYwKrFaaT
Bitk04btlbtzSqlRWmzZs2bqTcpNNmNlKUxWlKppjE5VwcMNkqSOrGPNWynL
ZhTTCV9T0aSNlSuzd1bOW7BuqqjG7HVWNMRwju/gNPAj5vJ9KR4KVXm+9ubu
qT5PwVh6vwdH2vm+xw82N0+x9jq7NmyvqcOT3ntdG5X3MSpJjT2qer63vbO6
sdEkrEklU0SSsK3STGO6scqlVEjTSMBw4STGz7HVj3vRw8HRJNOHmfa6va6O
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
E0KlVKlJ/WJMYkVFRUqSkKilUVSoqKqpKUkiqSUqRSkqSlUpRKlRUpVSSlIq
pVUUVKqSUkkUkqCKf6GPsV/epkIqik2VSpJSlKkUokqpVVRKomyoe9piQUpK
pNgphUqpH3MMSKKklVKVIpSSqJVFVKqqKqqKpVVUhVVQqqqqiqVKVUiUqCqi
VRUpFUkqqqpUKqVSpRFUSqclQwpVJRSlEopUqFFQVCqlKhW0TRpNJFKD6Ho8
mkblRKU8z/8n+Bono+T972PF1OApSlTdpjQqbmzRFbnV6uCeSp7GJiIpX7yk
kiYpNKTFIpUSdlYSoUqIpUKRpIe080DZsMbKVNNKBVSCqj3qRiolKkqkqofS
pioqpseR2f1qmn+H5nzSWoX+xjyhHD4nsf6Sqxv+jqx/U/Y0xjGMafqY7NzT
w5vg+Tu7q/IgfUkkn0Eh/I9ifMnwYdTTCkVT+p/eTxVCVVUkmkmwOEmEwklS
qeb3OXD3KqvQ9zY9rGOVOWzlu7sbsVs2VurdTGzhsnKtmzdu3blY4act3CtO
G52Orcr2sY6Ox2V1dXLls5acK6uWmzhu2GzhXY7ndQqSSpFKhJ3Y8FSSkrQp
SVSqkr5tKrGiUqJPiVGKkKklRSSYYJhKJUGzYYgrFTCisTCqxX1NJJpNIqSV
imMMQVjExUkVWMYmFSKVUlQrBiRKVCpUjGMQYqqjDDBMYwqsVKpVJSopSikq
iYwrDFFKCpURVIUqqFUKVJSkUpVKoKqVSlJVQVjFYrFVMVESq+hWkFKrRjBM
VDdpiJVQ0VIpKjFYVKqMMKYhpho0Kqqopj+s9xjQ2ViqFVhhBUpUpFKlMVUx
FUqsdCsEpUVSRpUxUIqiscNNNIiqfzFNNzYYSlQpUqqlRVRVKpSlSqSiUUjR
UkqVEqkwKhBjEjAaH9if5FKp9yfrV4PocP8TGx9ThuiYo0lNJjHk/Q/W+59z
hw2V1U6H5z9xH/scINBJorTlVMhwNU2CTGbJUUMY2RiNkxmMsKySwui8aZ/E
UJI0CjE9j6D6Wm56oKYNPzva/sbD8DlhHxbMSMIqMYdmmHRiNlGlKqjGKrFG
Kj+ZX9amyIpsqHk5Yk0VKpKpVQ2KpSdmGNKxFChSUdysfwq5eTY8FeCfcfuM
MPuEP/wf+Yhg6uXV5Gx9ru2bt3dPzseD2OzhOH7XDGx+1XZ0ebd4vBP6X7FY
N36Ur9ybJU2Gxj8x3bNJU95J8yUjSVGJSer/8h/rGz3H2D6DSaaOD2P3NzSv
4ihiofF3dGxXVucHBh+98H8xuU2YNPtPU2bG7k+b+s/EpPF4EeqonCepUkKq
eLBVSpSRMJ73BukPrfSe50bIrHI0fS+pPej2MP+Z1Rw/tY9773g83m3Featm
7g2cOHCfxK6qnBUwqU8WBj6FTyKp5sPY7P43KTGkdTyNHDEH+p2dHtfidk7P
Nh83vdx3eLEej62OSk9EcP+DonD5PBuex4tn4uyQ9ikPJ6urqr+ZPB3bPNy7
PA3YbBs6N2xR4sVwpid3d1eLu/FJN2k2eD/nf+T6n/2dX+gro9HgndjZ2Y00
jzYNn0vFOE0+LT2ntV7Xds0r3K5dFVuaeLYx1eDE6MNKjdobqU+Lk8SafB2P
E8G7zd2Jy6OWitJyrZulMaK8TYx4t0/zGmGlDdTofBTk/5nd/erybmHo7vFj
yT87g3R+5+Kej+5ublHwP9po0nZ9aPV4vFUPJ/zEcmI9w8VdTR0Ox3cp+ZSn
dDDZ8H85hyfU4fJ9TY9DY3dWjkmzSH7mzZ5obGKp+tjzV+ox8GnCleDHsPR7
VcsVFVVKqFUiqkqkpRUpSqopSVVVA7KFctnAxu3Q0Yrds4bpDdXdUxVVFUnK
p+l/Ce52bq6sMOxOqV8WmErqp81aU3Un0vc96GnU+JyaR8FdH0Dlj85jZFKe
BynVpjTD71J5q6N1aN3vbtm7Tc2aJ0O5+B0HvcPg7Oj0Vjhu6qrl1K2KnZ8k
4Q3Sp/+iI6FT/i2OrdOTs2aRors9zq/2uWyTycNJyNNEaaMVs2PJNk3Nkf8F
ebQrT7WmnodGni7N2mNmz2NPte8wqMebGnB6uh0bvBo/U9xjgejwKdHdMMPE
9GjDl9DHRu6NPJJPQUeasVJ0OjZ2Yk2SpiYVhiUqq02bH8aaPVSerBimitNJ
gxsVCmju2Nk0SjEbpU0FTRp5NGjo3TxaI6GPa/M/e9XtP9r3NEnL0O5Vd2Gl
NKabPc8Wmz2nDlo8zc9Xue1wr6H8Yn6n2qdnweTu04OXsfQmx3U2Jhw/OmzH
9D2p3TufoYiH/SjQwxU/kfyJJ+thPgod1ebyYf6iv9bu2bpsVKdmmmlVU/tY
xFUmlTB/mbtn8bZpu+DQ3Vs7saU97sx9LZsr6HVun5NMbPrdD1fI8DwfFWNz
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
kkrT2K3fzJ7Tl3bKxKOpFe1j7ld2HDZsx3U5exO46o/ScnuOhhT4nsTxGjYp
3Oh/Ie1saPROB5qOTR8m74H1v8r6Ce56ur4uCuhwfrJh7VOD0fc6vvfgnyOS
ldHdJMR/KofI5HwOqNjso9h6sTspwUniU7pXR9jD4JsnxPN4FOp1OR3Pg+J4
Nj5u7TT6Fe9XCbGFU9rsxy7u7ujY5bpJ0dVTZX6ymNPydUxU09WJJoqD7DwM
BSonJU8FN04YYVy000JHsP+Z4nB/Cxpw+w8j3nvP3FMH53ofUehyew+lPuew
Nz1eTTTTZs0f6Gz7H9p9Lcn0HR8nJsrqn52n1PqbJ4nDDDkwcMPsK3NkbtHt
Nj+BJNn4DTh8lHL+N5N3dMNh6H9LZu830Psfi6PJXuPUqnR3PYnm9DYfa6vm
/aeCScHc8XgdU/F6MHkU5eZ+J3eLu6oFUpU/lVieibMMGlH9LQaT6VYqKlcq
xhTcqYqMRhiYmiqYjzSk5e19ScHc8nqqblY9GDq9XoT3mimw4KbHV4tjY5TR
708mmzZu4I8js83CtnuU7n+g8Tl5OjA7v0GhTTq6mPxfWrl5sebg/a7sd0r6
W7zVjGzY9x7G7Zs7n8rGH0sbHsO5sYfJujo/ESTkopRJFe5VN32vJ8lN26dG
laOjZ3ebZ72xwaRSvxU9jdjTZjl4Mcups7MbuDc4VibnRo0fQ9WOiNmD6m7k
3Vsr3K9HLsrD6nLk/hPzmnDY5d1cFbDqQ7Hk0+g4fU+B0O57inU+J8jweDyK
fJwepseZ3Pk3fQ8GzHxcPeeZjwdXZ/rdT+h/rcHudDHLl4Ojc9p8H0Pc3OjT
g6vRuVThiYxgxHvODR5m5u8XvYfJT6ToeBonvOidzSdxu8RofU2Ymio6J3V3
Y08Hg6nxPJh4OB4m59p+oUo9BRh9Z/pfyOx1dT6SsTwYnieo9HKeTg8Ddy6P
7zTTRsNxs9B7kk06OHJ7zoaJw+T+J9r97d3U08mHmVJ8Hgep7DhsfsY8D2Hd
8n6D3GNPFydingp3PF2VD2qKUNyofgoni0TG7/aejydTl8HZ7To8lQpPuejs
8HvdWN2n3Gnq8nwTRHqV1OzE/qPE9U8XyVjdXZjGmMY2Oj7X7j4nydXidnvf
ex+x9J8Wjgp6NHsV3K9Dg4Tup7TRhSVWyjDHsMST1NjG46mG5OjT3NzdPad2
xj5k4TTyeBylOgpT4JuHU8TzHk6P2Orl5PB73Rp7HQYo3dnmHdjwO6e9yOHt
MHQoeLHgrRPa3Gm6vBWKMVuR2cNim42O53DwQbHk6ndoU5fwtMacN2yuyGmy
nQo4P7zl9hu2NE9TTSvRs5bPMp1aeLl6tm70cKmj0dWk0eY4cuH5zubOqp8S
p3eJ8HRO6jRRueJ4PsO5pHi/xmODzKjyT4GjY0P3JJ8GmzBIrzPNicHk4PB2
HJjdNjYwfcaaJ5p5PVs2Oj+Jp4v725oU7leiuio8lU83RVT4vcUxDRRwfacH
LsVPMKnDZhisIp2Vu0n4OjZ3eb2tOT4McPrOXVXDufY/M+LzeD8HR5PE9g6u
zR7jxdU4ebySTg9j4vJ0ebc/WdXQ0dSAqSsU3bE2NCvJRs0w82mm7Z7mzEnJ
R4DDCsO7DyY807uzo+09DHZ1GPMe02bNPxdGxwUUYYx6HJybFNjDxPI6nZ+L
g6Epw2NGnkPUYdjTsh1KV0KcKjobsPieLlTZTZpWn3n87ubJ1cNJ96e5FK0r
uYbhwU7NHi5afSrybnvaeSOjDY7lG5hPqfB73macGJJuU6HmbGipOVeDyVOh
oxTDc03NNj6zh4sV5PA7nk9w6HdT4HY0lfSbJ2PeYbKdGPce16nsbKbvF5HQ
9h5NknIUU2HtV6n8LdNBNK3ewphTueDFaV5H9TR0HQ3eqJyw3Y8zSbmj71Rp
uYm7xRsnZu6tP6jh/pdnU4bGOzxdj5OB6n2uW7wP0q2bOzds6sdnk2Kkn3H2
N3wMeam51OG5pwe53dGjDY7lO6miu4m58jhjc3TumDDRwYU3K7mPycNjHKcJ
Oh9j4tk5OzRwfFjE2KcmHtaTyGnVTRopj73vGKPF5G5sdHi06OD3mw8X9bg+
op5vxd0TSnUrc3R1Ukf0OGFeJWKOCqdHxGkrR3PJhsnmwqmFHkpP2J/a/Ap0
Ng8ymjo+LqfiU8BRTl9CvMPe9yDq7vM9zsUVwp8huN3LljzOGx5KYnLdOjT3
J1cDhy6HQ5cDTGnkmxJ2SqpQ2bn3nuaPzvqeDT6SlFcur6Wjdow97g9TZ6vq
YcuTzVVejDqaaeww0qjyCoxXCjG5h0V0NzCTuVEUweZs97oY5YeZ0O6tNlHR
/qOTTup4uE7ntPQ6ndyeLs9D8x9B8mzGzG7sYfE9jq9GHVOBudWE+KejybNk
nD87T7GldTl3Nn6HuadWyujR9ojkx7zwPQ9DTwaNHDTT5nVDFO7q3Vj2Pm0b
NGHVOxhh0O5SuGx8DyNiNHxKx2fBsY5eD+Uj2PE6lPxTwex1PI81I9jHxPJ1
dHQ83Do7pSqlU5Y9Gj0KdVTZwkmzdpVPU9gxOjZuVw2cq2TweTR9bg2blSuX
i4Nmx5OpXgcH3mHL6Hvfe8Epsw8Ds6jDGNNH3vY9rlJO50PYfW6G6TZ4Pi+a
eJp4n7E+wo8EqTowjliTq/OV9KngU+Dlp2OVfBseAk5SqqCVSJVSJVSVVUSq
D5mm7kxI/U9ps2OryST8n0uh7ynQ+LDq8T7ldmzl8WzgbvNwbH9B8TTh+TTl
wfmPc4OFT6XAcp0KjoknBWz2sbKeLDofBwYPkww4U7uxs0cncYmjh2NGGmK9
zlpynscnc2YKVSjkpj2lT4FTwNnQp1NMOTdJMebE4KNB0MODRTCqdFdHg6uF
U+5uaTu3bntdjg+o6uH7HVhXVybncxMcNz8nJinkUnZRFVwU02PE0eRTR5Dc
0e4btx7Twbno8GH4uGGyo6ik8TZs/UMUeB4lGnYnk/zvV1fBjwfU5NnQ2V0P
Fjc+5ufA3T8z3q830I9ju+LGAVGiuqmmyhiKg2MQ7q9GxgpwYYqFVDdUjE0p
OGm7SODsfI8jwOHL6T6HzdDk2TRUafB4ndo6OHd9RyOHD/rdTE81clHV4sdB
3PB/M02fWbGG6vsU5NK9x9p2Yafyvi5d387+1weB3KblJSU0+BjHubNG57T0
OBsdjcwwp/e0fE6HY5OzTc5UU9zyST2lbmxu5U5dz4nKSf1Dcjl+BTDg6k0d
RiNzYxy+tu2Hm5cj6jd+k2ODT2tJ7XmeB1bFDlJOp/G3dThIn2FHkcjFKabm
mh5uWho/iN2DRX+sp4qeBSmx+Y/wbOzxcGmjqdCp9jqG7Tge82PU3H6ThscG
59Zhpu4O6vqe0w+w8mHZ70w6oP0KbtOp9ZjZwVNNjGx5Hc2erY+5Oh1P1nQ8
Dc3cO7EblOTZuVo2MOrY9qSfa6GyuThJOhh2HQ4bGE3dFd1biOyo0eLgw3Nz
Y/qftP6G70cPFHVWGzo0/Q/Oehs+1Oroeav2Nzse4x/AV3U0p5HVw7JJWx7F
d37X0qP3ingfM6H5Orq7Ozo9pOVUer4tKo/UeB1fvexXBof0HsOA4dTyStjg
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
P2HQ+w6HgckkfhD5TwHmLpYSNkzCgqJLpJQpSjD9JubGClNhhTY+40U3J4jR
/iP5j5n/gepT8jc2PU5IfMpD2nodzwP0km5RTzHxHJwaOR5FHQowpJo+g+g9
xo4KdinB6n5jsYRuBhScFMPA7nsPaaNGjR4HY5HQ8jDDoMFP+g3MPEwph7yf
oJwfWdDR1PI4GHQ9TR9R9ifykn3D7yGmD8Sgw/qVBsIaGFCv/NuQxw3NxSGO
GENjCKaRilSqMfvYkY3Cn9yjCooo3OUmKVTRJMKRKG6q5GNklblI3KjSKjCT
BhVUqqrhSYqaJibj9BSRSkGNg5bkJopRRphUfcxGzYSY6FSYIbjEmHBSJhRU
kbodBisUVVSaNMJNFFVINGicFaUVUjCnCSnQqcK5KbGFKQ2KJKUilOQk2OVS
TdKSiqmGjSkimiKVCpRSVJMDBNKRoSpoVSGxQPI0cvE6EGioUqSSVRRUYMJ/
3CQpQkP4zCIf+hRsKf0lJiU6sYgqlf5kY/FojCtlT+wkaKkqomJhB/epK7HJ
Gj0UpT9SpJiQqv/QwYlSKSqU/hfwJE/wP2PwRoiR6FP5UijQUe8eJcP6q3qL
BQWnkeEoqIRlkJaR9YvDMHSMJUeoyGUN8lqjyDPGaMoekbJyC4Z4kk0RtFhE
lD0Oh0Op4H/yODzO5sfsPI2dj/E7jGM5LlLhhNY0zCYRULBeFDTUUSuvA6WA
aQwDUM0XS6SzEl1JpP2n4J8Eqf3Nnqp+L5pu8Ujl8H1vqaR/3PzP3ORPyT3q
9qk+4fiMHkKTYo9x6GE9VP72xjsex5uhufUe86HvPzuif4jdfAxK2WcjTUZr
QGeURhSQbKUHmSH3CoVH+YeZ8Hqo9jY00YPzH+NpJwbH+D9j6iQ7p3VJ5FT+
YoR4qRIqqqqqpKpCNni+p4H73Vp+5s6Pmro/4Prdx9x/A8XL/U+11eL2PQ9D
Zs83ghHsVVeCp/CoJ+hX8imKkn2JRPoJUjlTYqqFUkYqJPgVEGlSVX97GClK
UiGyqpPBWlBVRIqlNIwRiiToomK+QFIoiQ96P5g2bFKUqVSSqSN1ScKR4J8T
EknQqbFFU4UdlNIpNKqiqlUqqpVKVSvzMYSqqqqRWyqrEUrFMVVVRWKmKUql
UVSUqUqKVRUpUqqqFVJFUqmKxVKlUqpFVKqqpUqiqlUVVVSqKlVisSlJRipi
UpTGDAqqqqVUpUqVSpsqSeSomlEk2VCTFJ/kP85T9AwYYP8wbB/a4YiVRD9J
Uk+BKjSoPEVImKVSqglUCqBJ/9FJ4qk0VJ1P3PqfpfFs/Waejdu/FsnD+Zsx
p+Tontcm7h9r/GdT/c3P+DT/e5bKx73k6nDwVT0ebo/S/MfnPB0UlKx6NNGH
DHdy2bOzlpwxX6no3aNPBH2q0rZw80dHg7mjB5OWPe9rDh/E+DZVVs+LT+BX
m8HybNNNjSuG6tjFaUmKxSk82yPa+BT2sFbva5RTwFbvJjo2Y+CuEqVXuY+D
umNPBu/0OrG5ju9zE8T3ODh9zDZ+18XsdGzd7VdlY8GPVu3Vp0eTSPY8W7sx
ydGzhpsctjuep6MV3e18k6vBy6uroips/eB+4pI8jzPiND4h9pspUqvR4O7R
ue95tmyPzuXVp7GnU04VNlTD+Fjs+hhpwmz+B/tfyuzsrxTyV/g+TwJXYx6u
j2vUnyfNhJIP4X0vFK/hMSvqf858VjMVu43GFKEss13gXEd5JY0GBstc0kvO
9r+RBs6PY8U7vcn51fS4Y3VOqfN6jxeL5jT0erwK9qSfUbOjYqsPF9SPJ5tz
d2ODTSNjRyfI0+bh7jTExU6BXk8XtEmDFHV7Fe17ntfiw9HzHsfU2dHg8FVH
q8jg8WPY9ru5bjTTk0e1s6Gj2HuYow8HJK9z9Anicn3myqpp3Y5e54PadnDH
Rs9j8zdwdXRXQ7O75HLSd3sYnJ95/vPI8DqcPc9GPNuYf2nieJT5noaMMMHL
6mOjoo9BjxGx+DZucMbt1dDditOhs/QaY2V71cNPBy/4HJu6uGmlYx8HR0cG
zhhs9zlsbN3g7t2zu2dHKuWKNOro05Y4aV0bldG7G7dUpyxs0rl2VjTHZ6uH
vcMbsY8Fdndu2bGNm7Zs0VWzTh3Yquzd4OWH/Q6NmzY3cGlafodmytN1abpN
MYNPe08HDZ1V1V0dnk0dHk3d2zZP0t3k4bOGOGNleDdw7ODl4PB1aN3Lqbmz
hs2VjZHm3bm7lpiu7q7OHZw4Y7O7wdnm5cuzGOX0tHDybtO7Rhy5fa04Vs3Y
d3Rhs5VXdy03bpy8G7s2OjxdWnVSqm5VVuw0rGODZXDq02cNN2zZVeCuXZhu
V8GnDZ979Cse1WjR+TdsmmPsfk7sToV0cp+Ts2Y0J1dWGzsxsV2bt34uGN3D
D2HZSbJo5YeTZ4uGOHR9DDqnV0cPN3eDqdGlOXR4N2zxaMU9VdGzlivY/Sr4
NPNOHdW7GyoeKsaYe87MPapj4PNT6HRunRjh+Lwfk4bKj3vI0rTGm7obMeLq
xWkmOWnL3NzyfFj4urEbsTHd9L5PNp0V6vxers5eLux5NOjxej4vNJu9Xk+a
urZ1cPY0xX+54tHxY2T4vE9WjyVyfix83yeTl5Giv1uHm9js0mKxu+TGzd3c
E7lIrxPN4tNjorTH3K8XDHwRu9XdwbOzd8XRw/W6u5PRyaT3Pg0008WPF/3M
SOiq4e1untbq2eKvE5Nm7qaTyVy3fWfFy3bq9j2GzTY0w0rHdh2bOqtParlT
6HJ83ucuzl5tOg5VWzEeihs+50aaV0YwYp9b6HVPwbno5PB3dkpp2eDkMNzo
9HLs0p8VcI5Opy6OhufFs07Mct2NlaVp3fk7O78HRppjo6OjwV9rlwO7Zppy
+LZN1dVPFPcx4qnm7sY9ru/M3bPN8nJ+To0ehXk5cNOzTRhj3PRy7uru7Oqq
exw7NndU2ad2nRJ2eTR0eD3vY7t0xNk3PrebyeJh/ier7Efie89xNH8ppJBM
fyJhIjFQ2FUpNKkOVQ/+LTCiKRUE/pVJwVJJiiYoSMVIiqE0NIqSVJSMJRh9
J8z+Af2EqUUbJ7nkYT9pKfAeBhJH+sqSnmeDSeYqSP/w81eh/92z/G9r/ybP
/wrThwTlps+DZInRSRHyV/YpFVCI2VJD7CnJ/3nuaSvRg96q+DBVEYkFJMDB
WFFSlVVRUiqQlMYIqf8ytJpA2VUVJpUFVJpKQ2K0UmKmkU/zKjFJNlHwKjCk
+k+kfuPAD8Dck6FHdKJJ9h/SGEH9BSUpKdzsFEQcpG0bKPEflS3Dabio95Wo
cSUONobH8Zjh9ydG7Z/SfyMbqaeaTs8n8Z3OTDDDZ8jY2KUpT/3GGFKUpSlK
KUUo3KUophg5SR7xK+o+kkjR7n7nQr2OE8XoY03Tsbt3oaY8HJy9rl/O/of0
G7qburTq+5sGjxd1fF0cuHk/reLh1dXyY6lKdCmisbHRp/nV4uWyTQ4aNCtG
hphitKMUqsNFejGyujdu4Nn6X3I/+DsrENn9To4eDY09iSdn2JJ6uj+1/ecP
A2O7zdXyV7Xgwrhu8XsehJJPQFEIoSkSjRhhSUkpRSUKUpRSlBKRT0MIYKUb
E6FNEhTQw5fsf1OXB3d2H6UrSp2dWPB5NzkpMeLlwaVPoaad2zg2DE/F2TSa
VMVpjFR2VhVRWlTCdlehwYN1N1DFMVVaYwKKSt2Emlcm57HgbHyVwd25h3R0
cn1tjxeTHDStK2fQxjyfg8z/g+DDu8D6RwMex5vRwxy2Mbq7u6SSOHR6t0Ni
KSlJOr1cK3btykqKKqpSiqpVUSVSR+p4EcN3c/ekmPieZw6v8H6j7D6GzxVw
/Bjxej2p9Zs5QU95BXRiSdHmT6Wmmj6lHVU5cqn7HV3OHybuFaMYqvM/9ySd
z/K6tyfSf9x5j6z5KPc4SfmJ72mz0PrPF1YbG7FY9xUxStmmmxsV+Y7I3ftN
2NEfYTRs4YU9H3NOHke9o6nwN1dH6WPa3bPJivN7Dq8zZA8x+SfpK4dVV1aV
Oj6H1Or3PA/Y97ord2fBTsdT2PscPcd3zd27qnZs4T/GqpXqcOo6vY00afB5
Pa8zyN3V8nmpTlK6k3ebTk7OHqnsRw/zOjoPa6vVKk2OHUeL0bj6TxbsYY7G
Ojd8GG6Ro3P2mjsaPmaHg/UqfadD5m5psbHuKOhXc4aIr7Tc0d2G6U3TZwmP
kf5Wz2t360kn1sSe46JHVUqvcbDo0Yn1J+RhWjDZwKY0k8TRiTTxeiMdXtVj
ocjlU6GxupXR0cOGHo9yvqYeLDFaKrStJ1PqVFSblYrurFYU+CtK+tTZurHk
7qw2KeBU5cqxVTk8mOhK4TDFNlYw3YwqpoxjGMaMVNmMNKqY+1pu9Htfa9TZ
1cMHZ4tGjGHd7DTZWjZ9TD4m4+SujsnLTStk6OQrlRw5eTkw+KbPe9xsdDY6
HyR0STk/0HJp5nRXJ8Dxdk4fB3eTlwV2TD4GnRj4nV3PcY/+z0ex+097weL4
qVTCnirTTCYrySmxsaNI0UVRjFTBhX1ng+lXi2PtPN6HZ1dn4PY6j2q+BXcp
7Xg08XKlVVV2eLT+90PEqfU2N3kNnVJ4vzlbHA+A8XDl73vY+DzbuiY+ww9j
oxu+J+o9XsaO47FOUVPsbjqw3NJsPQmFYex9Z0To3YbseCMPE/J72NO6U3SS
nJ0bsNGGPi/EbOz9p1MN2PrHV9xXUdGFejhJPAiI2KSEfykPkeBo9hP9wo/Q
6H+o0RsKeYfqP6jqRD2EkeZI7ikoDBhhEmg2UNENBRRJSKAwpBSkSlIpSiUT
CkQKKT0eYYJopJ4G5hJ2DwHUg9TkhuiSNFGEUiikkSlISUpCUpCinBQwpSlK
eD9Z/8ST0QP85VKMKCmN3sMPakqYTzPeck4cGFUPYaMP+J/uPenwVPJEqoe5
pGmMCsaaQw00xpJVQcEmz/taBibv9zSJo0wGK4Yabv5Gkk3YjhVV0Js5G5Ur
lwadEk6N3/anLlpjhy2cOGnQcuXDh1dzZpUwVs3VibOWP7nV1HQ7ngdT6zzb
D+0nuCn1PkKqfQKipX3iqVSFViYkmipKqaTDHm9z+RP/5NkcuH4MMVpMUOXL
l+1FSqTqk3RwpSuWMPmf0v6X+MwpP8hu/3tNkxsep7HxPcfpfzp2SfwFT8E/
gR6JujEMNzRglKxXsT8hRX7huP2jBgwYKMG6cI2TE/rIn9jwJ9h6EpT8TDCl
ClKVPvMJiUkUepUwUp9EHR5P4UpSlKKbp7h+tPcfU96eiPwUj7SlKqp7yiil
Pkn2n8xJJNjyDyeRw2G4dkxOUxGNEfB/EdkR8X0J1SeCOid0nvJT8QqYVKP9
zBg/aYf4j6jDxQdj0O5Sn1mJjGnxRP5ipR5I+oKjY5OCpWNpH3EdiOEnJumj
2jDk6JWHmblKUop3OpKUKr4OybnCKnsKckmkYYP0GGFJRSntbmhon3GJylFJ
TQpRSm75OidSU9ShSoVX1GHo+hu4YaFFKVWzqdSlKRSmjolVN0nzHc+8VK94
w6n9Rg2GGDSnKbDYaJNkqdR2KUpSkp3E6jSPuPBOE2T2sDhPxOU5PEG5FJ4s
MMKfEUx2TQPgjExKTEVKju2Ng+JSSscn8pSiqV7EFO5Hsd09U/EjDodjsUSV
ppoxKDonqHiTE0m5KSeROCME5TEqbpyiOE4SpSaEqYQw9ZEDdMGw4DdVVPpi
HwPM4QcDukmgcHqnkjqn5PUdn5O6JOwPFNzkYOrs8khPAfiKJ5koMEolBQqM
OhJ2SveY/xFUUUopU5JO6YjsmGIrhJwPM2OhJueJyPYJ3HiSjxHQaKMHsMRG
kj6DZGnmqqpSlKU6hTDyNiT2Hgm4o0lYnQUVUqnuI8XdSlFKKUUopRSlKUpS
ilKUpSlKSYO6O6N04NJK6JsRU7E3TY6HxK6lKKQmjCSKGHROU4PMop8yOpKF
FCiiilOYeCbJwkNEmjYrYOBgwUYFG6STofBNDgrdMEcopPaVJ1FRKK+ZwcFV
/KfQbk4CnkdFfQTlsSSk7mxUqYiq8HzTySexGip3KibmHQhPOSaHVXqj2knx
HU/gPaf5HV5Or87T+Bj4PYx9jhjZhp970eLs5fk/e6ve+Tdp8Xg6NPBy8X3v
Rp1fJ1bJ9Tq8yuGxivB3bt2z+t0erRsxjHR6q2bNnyexu/Fs7Orsxp0cN1dW
MbPF5uGzxaY3PVhy2eTs/hdXVpypXV7WPucNPY2dle9TwfirZyp+LTRu7G7z
aVpp4sdW6bO7Do6PF4vF1OquXcpw6Pm0002Y9jTFU2cNngbvB4HCtMNnDTlj
Z7Gxpw2bq6NnR7XZy2OXR0cuGxpTxbscNlUr3NmNNMNPewx/C2buzGMebdMH
RymNmA0kn/FJMB4uGz0cvF1bPV2ebh6NnVWnCuR1Y9Xg6OjsxjdjliuXDq4f
5Xg7P1NnDwf8m7T4O7hPBs3eLT6W7hsrZw827ZVadleatKVs5MY2dH1MdG6w
7hwjJCssMocpeKywScJnmubnIOBRhg6GjuNjodgcFCKYU95ucHsPgdzqbnY6
Hcp2Nz2mFOTY/Ao3HJueZyeB8zg9h0N0+5+lunJuYfoV9ytPm/F4tmnufgp4
mx4lOE9yt27Zww9D1HcdByro9r4Ojsx2Y4eT72ni7PwcOrYbvF+LT8Gz2PR+
g7HYfWUlKejlw6u5WmlY9iYrHubN2zlw09Uk05eb5qcGmMNlU6urd9Ldoexs
/E2Gw8DudTzPrOhsp5HJhhwaNDoPE+J7T6T6ToPE6HYp1FKYdzY7nBhO5Ruc
n3mG5SPE+sww6Gxhh2NHJh7jc0bD0NzxKdx3Oo0clPcdDDRRSe4w3HsMGxsd
Dc6n1Gw0bHq5OTueJ6ngG5yYcHQ+B9Z2OScJT2HDGnLH1n/s02bsN3gru00/
Bun3pJu+l0FOhufY09Xiwd2O7Do83UbOz1cPe8D3qcnzdHJ2Nk5cuWzYdDRs
0bDqfmYbnDDZuxKh7X1Nie0+kw5J0PV5FYbNj6Cndu9z0OD7nVjl9Todn0vs
ST6zo+04dXsOhpPB7TobHmUblHilNj0actj1KctnsdE6tO6pow3Pe3eTTc06
GOXZXRU4aeL4N3Dg+Z1Or8zZ3Ry6vg04eD0Y7O7HRT6VP8j5PR6PI2VOjhU+
pj1f5mw9Tu5U0/SbPk6Oj+hy5fB1fpV5K9zc/Mrq+b4OHg3Y3e9NjSoqtK6M
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
iPZ3d3VubO/c3bth0Ox2NDR3Ozt4O5wdnZVV/2UNHQ6nc7noTR6ur2jZ5o7N
nU5Op1MN3ZMJyjyUbDk2OTkw5fErkp9jqrSOp2cnU6mDsdXIvBg5YaNjc5OT
CbHce45eI7HZop8zqdzudzDsdHLl4vBJ9b6W6e9j0MNymGHyHJ3Hc2PeaKKf
xqNjqldU3cseDPYeAfcU7lD7nkVo4KPUPvNOGyOzwOjTds7uEnQU2J4jRwNH
tMMPcbE3FNCjY6GHQ6ngbnBQ6HA0aMHcpTubk9WxxPcm45NjxOTDwST6yVuQ
0T4HQ6MdDY6FFJPpfUOjYk4Tlh5FKUeDdPpV+L4D+k83tdzqd0k6N1NkU+RG
5k8lN13TYxRicjwKaNOw0w0btzTobGxooqYYT3lJpThWnB0K2V7zZjdjd/3n
0mwmxRKfvPqJ1dWzw+g9DGpIeHu7OR5k2OVFVp5G6abOyuTY2ODg/pP6jwPm
dDqdybE5KUnidTudylODoaNHUww+Z1JwPuPqPYcjuMPA7GxuJPI8TwH3nsPA
w0U0dSnsNz0HY5NE0eZsRODYwfmPsKU9rD7DDZ8z3EmHJ0bsH0D8eWj7XU80
hTq01Nz04KpjSsPUxPYPB6yQ6jg5Oh7HR4jc2fQYTJy+XZsaIdxsU0ckw6Gi
no07K5Orqx4NzR1KYaND6WnodDc6vBk8iU0Y7N3KYiniMN2lY8GlbuFfe4cn
JyUph0NGj5mGH0m4Ox5nc6DY5OTCfSbnyPE8SpPMw7OTyfEe14D1hG54tDqK
NEVujDZ2e0U2bGzcno2N1bmQjd3O5OzhwOiJ6FKYckoo7G5oqU9h3HBs6pJu
Ycuhwp3VFKe1h4nmcm7l6qcKrTFTqepoadlVu8jRwep0E0clKeRuaNHmYYe0
5Owp0OTRgpoU9ho6m50Oh7zRomnsTxD2ug2KcHUeRgdmmGw56HBsTg2kh9zY
3NOcOCcCk6uhgHabCThodmpInQU0eZybnQdjccup4qmKwpSnJwMOD0OiacMd
5XQ7t2lVpWGGMSuxTwbO7SsbuhU9DzMODqdTRo8jDDk7nY2OTk4KfE2NCncJ
jwhHDzbClOqDl2a6lJiib8qTmmzrCN3RjqNDh4GtE6lPU4PAqbuqsRuB4nwM
PFuxuUxiqrGHUxpsbMadFY02KYaPrPqPqHY7DYeB1TqeREp2KU8DDDoU9h9Z
2ODzOg9R5mxMOgpsbG5o9Dg4ODuaKKU8jocGx6nB5nQ4SdDscAnB9JwOh1MK
bFOTY8zsCbj0bjhTsruUx1fEp5HxMOpo0KbnvKYdwHB1Yo8TTwK3cMbsNNHg
klODxMPEpRT2mGHJycnidDgww/qdA7PBElFSJKH0nYdxRyU6knsGDgeZudD4
GAmISHIkhTox4vIwxXVXc+Z1Nj/zT/sf8XY9LwvIsWLS04lFj2PUxNdcQaiS
JUeN7GatvY7i6lxIsKj1lRD7RWcRjZCKmQXnmVTl9j7H4t32OE8jxKdBsf8x
3Nz85Sf7Cp5Gx2aeh2bIPR+tu2bPqYkmkk9x0bj3ujxNO52VJ/uUnipGlCq0
pKqaVVTl0fI0h7lROW7BwpOqmhXBQ2UFbsOipipNJUng7GGm4xDwNJiOGMKq
HR9rHCq8HDSOxUnCnVR/1FbpFcJUbJW6p1VOjdubGzhUrZskdD87cnKuDGMV
Ikqng4VsxiP+x/2uhw2eLg0mKjqrq6sf3P1Opo3K3VjxYJipJ5IVNihieo/B
4B6DY3VOU08m7GHRjg6qUpVSqaVDFVRu6nDH0NOWmJVbNNMKbMY5cEcNK2cG
JpVdW6MSbvvMfnNn/B9Lhu7P9Z3OybKaafwNGxU6vE3TZ/rfWaV0eTh5OXVP
sPExNFVXuV9r2nr9z1fNWPkV+D9j72k4fvbOX8LHQxpurTZu+obHRo3MdWPz
urTq5cuGPqd2zo2Y3d2OzHDdWzs04aburdp2cKrdOjo2bNjDSmOrGzo2bMbu
jTqabt27HV0OjG7hjToacurq4cuhw6OhdW1xWyTVNTovj4lpRpqLy2R4iR3X
YojzV71JuUK6scvBj5upWNFbv2u59RWxVK8HZs4fU7uFcuVSfYqSaU6PArFU
4TlMfi9XLT9Sv2NH4KmiqaTxYk8GMHtU+CuGzT8Wz/BUPM4cuGyv+TA6PaY9
qq9j2NPa2DD86uXgYnubuip/QrsmN04dX0NHk5YpUfuV3dnDQ8VTFfFXtUxX
c4dGhP0OWH5kpycODQ9zq+p3bPY5VWGFPR9bEbqV0YjZXZ3MPFX0nyVPVXLZ
8mK7PNXVj9Lgm6o8FHgqcuzB5qeKvkp0UjHonds+hun9Co5U81T7HvMfaqqn
i0xisUqUpVbMbNMejGPMxicMO6tFVsqPUpu9jgx8ye5Td9LTZp/xV/mVjZy3
bPB9hppo0976GmxsVHVUxWj6WPc2YVWKmKn1q/a0xVT5K2V2fFppN3wH4K+D
qmE81fsPedHmqOzxY7KKrweaYrhjzVPweTHxbse82Y8FT7CvwYxIcFSqT7lP
tU+ah7lD7nZ3bPBw4NlE+h4vc0KpPmUh/Gr7ntYeD+t4uqNkk+SkfQ/Wfpfu
fJu7qk+Suyk9iur4lYxW5StPc0+T5JjdVerT6XV7W7uabqxXvU2Ry3NN3grG
zo4OqU7sHL8z+d+l4OXB5PwT/Y0N38qnCn+J5PxT9rZuckk/0qn6FDwUdVQ9
ipJ2fufmdX6z8z6X0OXgng2bOWNPk838jd8FbPofSfS2PBO7HvV4PsY9o4Tq
burZsrdR6qd1Hkp9bdg/lUxJUh+dR+5p2fS/U/ej2N3ydHqfSdW7onmxw7PJ
+l7W76WHdVOGO7R0OFQd3Vpp7FMcmnQ0/a3eDqr1dXi3O6sUlKd3zbPJ9TZ5
p0Vu9jZj4tlOjluVpMVWzcqVWNK6jlW7GCuG7SSPc6uXo6GOhXm9WKdXVPqP
zP1KaVSpU0pgx2e1shipslFVKqm6iY/cxh4K+CpjTErl6NH+0qPqK8Vd2z0P
F+58zwej4NPc7Ozd8Ekx1U7qeTc80830pJu6uXi9jo5dHi+B+ZJOUk2eDs/Q
+183IiI6Ugc5BLqJQPOfGUJJI982MDcopRFFNH+kwaFJFKRT/i3NIg0UNKMC
lKkShUk3KiIYYY2KMFJKUmipCikSYUiaGDloibFCikbFIwpI3URP+c/1P9TS
SHBR0FHIqQ0VDCiUUkMIoaJRKUT/c/UTBhT/5ilTFK/zvNjQo2GJhgqj8ipV
SYkqG6YmFN27ZNNNMMVCsVhjDGKUUxjZJpUQYpKxUKqUrdpEryYjZsUxs00r
STFEpUKKqVVVMClKqklRSqqqjBFUjg0xCTgpDSaGIqpBWmNNK3NOExMCTRUk
YpJPqEnsEn7jCYSH0jRSlaTD85MP+ds2fUB+Ykj9wYODBRuUk0CPvNBhgwhh
gpgphgiMGiQpJRRDCkhsKfsGg0MOpoG4w3GGG5sbE7E+02NDYoaJTClKJSkk
psSjClCmxPznJo0Sh0OhNjRJwFOSUYUmEowlHAbDc0NDBh1G4YcEpgOBhhSa
FDgnU2GCmihTYUYUMFJodTY0KRSko2IoclMFJucjDco2FEwpgwSYTYphoaMD
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
XLdXdskRPyJh6lP2PtVDB7zGCaSIkVPU9xRT2uTQ0pEpJSJVrhbURSAfN7e3
tp9HBdcT3PpdrlfQ8rtdr6Xa/89y6zH/GiBgYENM3FFGsojWMYqRTYpRKk2K
/kV/KlaKUpSpSilClRNxUKqqfJK4FOqrRVVUqVKUK0xNg/A/JSUqVSKlPwUY
qqKpFSpUUpSpKpKlJShUklIUkpVYSYkMVIWIVQqg+lJUidHAfijY2YYcFE4G
xRSkpUYaSN1KoFFVUopEjgUMTGCUYqJiKJWIrsxOimkJsSqVUmFJ+AlaE0dU
6D+N5PzIfqFKFQqlSKVSqklSf3qkPIqSKpJpUqjgH6zoiR2UjYnmclSlNJBG
idx5lSbkSinQ/uNySHAqDUiSFQfeqDSSSf8JIkjHIeoqfA8HiSE0knUUwkp/
wNmOqYRUU3eDQ0aNKwYqlSaURpjEVSqVSJVNKUqMSlUqiQpUSYSbNCaQQ6lS
COTcfuR7UfuKY9WP5SmxhgYUeRTRoYKxJiTFYrE3EVUaUxKU/MbGFUpWw4KT
Tg0NmmDFTYaFYYYUoqpphhOFDBspiUVUNDRoaKYioxVFKkVDg3NGlUqSq4Uj
EbsGKYwqSoYKoVKKkKjFYoqps0xJpicEibmzZVU3V81Y03Jp+9jkblbMU+au
GmKxRijEbsYk0lNI00rRuaKGxppjSpiyRSmlGKxsVNNk0xphowjZIpSmKjZB
hsYh1TzMJU2Nw7HRI+A3NKRUr2qNkaTEf+boKUlKpKpKSLEKkqhJikEKn9R3
DTRI4RXtDsf9xU/5ypCqSlClRGFImFRMKkwpVFSlKTCFOzSTdE8CiHA3MKH1
D2P6SGj/pUhKqQlKIpVCilEhRUkVSRKUpUqgqhSlKhKUQpUVRVVUhSkUqREq
pBVSlEKKKVIpUpUKVSiVKkhVCUoklVEUpSpBUlJCopUqFShSpEqUVUilSlKF
SKUFKEVUgpQlKkKVFFElFFKlJKSqiRSlKRSoUpJHQoMKVUlFRSqUqUlVVJVS
SHA7lVSpK/E/2lKKKMf8T2PRUpPVEVIqnaEdScngJPyJ6HY3OD2KGKKlFKkw
xWGFClJVU+CoT4FJGk2HmxwpNkYlUehhhoqVJiYg3KYk8HicNFSopucDhJ4P
yYYcJOCm5DhUSbuqVUqp/c+TE0p/pU8zR/UK0lSeSRI6COyT5GkTBSkbpyeZ
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
QqSO5seZupoodycuh1Y2OHB2Dk6NPRUdkpuqOWGN06HDE0NnDhg6FdjDTsbH
Cq5OXU4YeLqdTSujQroqdUFdh0Ow0IdkrojqUo6tzd0Hg0clNPFiurDk6uXJ
hsYxupydmmxskdmPFs2U0dXQxw4O54ODYrdjo2N3Lg/aTuaVO51K6EjY04I3
TGlMVSmOzyGh3KpsbIcmxsVJw8Dqdjo7HLTdybCm5u0Gmzh0dDoYTo2VsqjS
sOjk0ctHZscnBjcU6uG7TAVuo3bFTZ0dDsdDlVU7uGhOrzMOjxVNm7DSph4K
YpsdSmk4PI3TBseANxoUpoqR3RTo4HdsYbIOynmp0NnRo8VOTY7HDZGxuYcH
mU4eZXJWk0VOrY4KUjTxY7OQ8GGjhsaYnJy7NJwdDh0Gh1eDs0nRwniYmimj
k8DSaNjDxYYUxh2MYdXcw4CdHBh0NnQ8BwaKcNjgpu2VwThNHJuTycGxUkx2
Ohu5UpuYjk7K3N27dVGOGBspslcuSaeB1OTolMOpU00kODuxJOqYxipEqaU3
cuzqcG7oV3NJ2NJsOrTTRRhskeQ7tk7Kh2d2IdUk7qwdWDk4UxwUbFSbMGhj
ApNzc0aNxiTTFYTCpwKblUbsaGjGlNJox1PFpI8TdUYk6pODl3K2O5swrgwx
Wimz3q8yaeR5lKd3k4HgTTqdm7o82ydnZOBu3HUop5tIVKx2OynZseRs2U6v
Mw5Hds5GxHU8Xibkrcm7qx1GnVKdCuDxbOGytOU2DoaabOTRwYPBsOUmzsaG
6tiVKOxu07OTRpN3B0NJu3FbMKrdTRSqKnU4PIY2bnmw06OCmMN2HRsdFSuD
DqMbuTkbowngw3SpuSuVNzg8nDhuwqKU2SnU6NN0wqbm5s6tNNN2OzwY6NOj
gqbGyqcseau7R5u6uE3UiR3QYYY6NjdOBXBGxwIpGJ4uHJs6NzToTsUaKY3K
2aSbEebY2NjRiDSmFHVobps7HJXKSeCNynoV0NOzqrYrs8mOzxbOjsabqqq6
sdHRw+ls06nByV0OoYRNyJhTQjq0NzzdmjzPNo0diqmmHKdHYnVpGHimyjGK
NI8HCUo7q4ditnZs4VTZwrwcN1btjlyxurGzdw4blabMVj2OWGm5OVFUHYpK
o7qkndVVIdlDHds0VQSqlU3VsVSqpimlTl1bN1VsO7R2dTlod3KbMdToCO6b
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

------------=_1583534362-29877-25--
From dan@cgsoftware.com Sat Apr 01 00:00:00 2000
From: Daniel Berlin <dan@cgsoftware.com>
To: gdb-patches@sourceware.cygnus.com
Subject: [PATCH]: Allow rank_one_type to see through reference types
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <Pine.LNX.4.10.10001251019190.10714-200000@propylaea.anduin.com>
X-SW-Source: 2000-q1/msg00033.html
Content-length: 513

This patch  (against the latest cvs) allows rank_one_type to see through
reference types, rather than claim the overload is incompatbile.Since we
can cast to references anyway, it shouldn't claim they were incompatible,
and at worst, if we can't figure out how to cast it, you'll get an error
when it tries to cast it.

This helps overload resolution quite a bit. I can now successfully use all
STL containers's member functions, when combined with my other patch.

Next up, the exception handling stuff.

--Dan


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2000-04-01  0:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-04-01  0:00 ser-unix.c:do_unix_readchar() Don't timeout when told not to Jonathan Larmour
2000-03-19 23:42 ` Jonathan Larmour

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox