public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
* GDB 5.1 TODO list
@ 2000-08-01 18:50 Andrew Cagney
  2000-08-01 21:43 ` Mark Kettenis
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Andrew Cagney @ 2000-08-01 18:50 UTC (permalink / raw)
  To: GDB Discussion

Ok,

So here is a first cut at the things that are really on the 5.1 TODO
list.  In previous discussions it has been suggested that for each
release a small number of changes be identifed and completed (of course
everyone is activly encouraged to also work on any other TODO or
non-TODO items :-)

The other thing not mentioned in the below is that 5.1 also have a
slightly better organized release cycle.  I'd suggest something like:

	o	TODO list finished

	o	Maintainers publish current
		acceptable test results

	o	Branch

	o	Maintainers re-check
		their test results on branch.
		(And there be at least a week for this).

Having the patch/bug database and a test framework up would also be
nice.

	enjoy,
		Andrew


                        GDB 5.1 - Fixes
                        ===============

Below is a list of problems identified during the GDB 5.0 release
cycle.  People hope to have these problems fixed in 5.1.

--

RFD: infrun.c: No bpstat_stop_status call after proceed over break?
http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00665.html

GDB misses watchpoint triggers after proceeding over a breakpoint on
x86 targets.

--

x86 linux GDB and SIGALRM (???)
http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00803.html

This problem has been fixed, but a regression test still needs to be
added to the testsuite:
http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00309.html

Mark

--

Can't build IRIX -> arm GDB.
http://sourceware.cygnus.com/ml/gdb-patches/2000-04/msg00356.html

David Whedon writes:
> Now I'm building for an embedded arm target.  If there is a way of turning
> remote-rdi off, I couldn't find it. It looks like it gets built by default
> in gdb/configure.tgt(line 58) Anyway, the build dies in
> gdb/rdi-share/unixcomm.c.  SERPORT1 et. al. never get defined because we
> aren't one of the architectures supported.

--

Problem with weak functions
http://sourceware.cygnus.com/ml/gdb/2000-05/msg00060.html

Dan Nicolaescu writes:
> It seems that gdb-4.95.1  does not display correctly the function when
> stoping in weak functions. 
> 
> It stops in a function that is defined as weak, not in the function
> that is actualy run... 

--

GDB 5.0 doesn't work on Linux/SPARC

--

parse.c:build_parse() has a buffer overrun.

--

                GDB 5.1 - New features
                ======================

The following new features should be included in 5.1.

--

Enable MI by default.  Old code can be deleted after 5.1 is out.

--

Pascal (Pierre Muller, David Taylor)

Pierre Muller has contributed patches for adding Pascal Language
support to GDB.

2 pascal language patches inserted in database
http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00521.html

Indent -gnu ?
http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00496.html

--

Java (Anthony Green, David Taylor)

Anthony Green has a number of Java patches that did not make it into
the 5.0 release.  The first two are in cvs now, but the third needs
some fixing up before it can go in.

Patch: java tests
http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00512.html

Patch: java booleans
http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00515.html

Patch: handle N_MAIN stab
http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00527.html

--

[Comming...]

Modify gdb to work correctly with Pascal.

--

Revised UDP support (was: Re: [Fwd: [patch] UDP transport support])
http://sourceware.cygnus.com/ml/gdb-patches/2000-04/msg00000.html

(Broken) support for GDB's remote protocol across UDP is to be
included in the follow-on release.

It should be noted that UDP can only work when the [Gg] packet fits in
a single UDP packet.

There is also much debate over the merit of this.

--

                GDB 5.1 - Cleanups
                ==================

The following code cleanups will hopefully be applied to GDB 5.1.

--

Delete macro TARGET_BYTE_ORDER_SELECTABLE.

Patches in the database.

--

Fix copyright notices.

Turns out that ``1998-2000'' isn't considered valid :-(

http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00467.html

--

Purge PARAMS.

Eliminate all uses of PARAMS in GDB's source code.

--

printcmd.c (print_address_numeric):

NOTE: This assumes that the significant address information is kept in
the least significant bits of ADDR - the upper bits were either zero
or sign extended.  Should ADDRESS_TO_POINTER() or some
ADDRESS_TO_PRINTABLE() be used to do the conversion?

--

Compiler warnings.

Eliminate all warnings for at least one host/target for the flags:
-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses
-Wpointer-arith -Wuninitialized

--


Follow through `make check' with --enable-shared.

When the srcware tree is configured with --enable-shared, the `expect'
program won't run properly.  Jim Wilson found out gdb has a local hack
to set LD_LIBRARY_PATH, but, AFAIK, no other project has been hacked
similarly.

http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00845.html

--

                GDB 5.2 - Fixes
                ===============

--

                GDB 5.2 - New features
                ======================

--

                GDB 5.2 - Cleanups
                ==================

The following cleanups have been identified as part of GDB 5.2.

--

Eliminate more compiler warnings.

--

Restructure gdb directory tree so that it avoids any 8.3 and 14
filename problems.

--

Convert GDB build process to AUTOMAKE.

See also sub-directory configure below.

The current convention is (kind of) to use $(<header>_h) in all
dependency lists.  It isn't done in a consistent way.

--

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

* Re: GDB 5.1 TODO list
  2000-08-01 18:50 GDB 5.1 TODO list Andrew Cagney
@ 2000-08-01 21:43 ` Mark Kettenis
  2000-08-02  0:52 ` Eli Zaretskii
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Mark Kettenis @ 2000-08-01 21:43 UTC (permalink / raw)
  To: ac131313; +Cc: gdb

   Date: Wed, 02 Aug 2000 11:50:16 +1000
   From: Andrew Cagney <ac131313@cygnus.com>

   Ok,

   So here is a first cut at the things that are really on the 5.1 TODO
   list.  In previous discussions it has been suggested that for each
   release a small number of changes be identifed and completed (of course
   everyone is activly encouraged to also work on any other TODO or
   non-TODO items :-)

There are two things that I consider release-critical for Linux/x86:

* Thread support.  Right now, as soon as a thread finishes and exits,
  you're hosed.  This problem is reported once a week or so.

* Bug with rerunning programs with breakpoints in shared libs.  Citing
  what I reported in response to your query for GDB 5.0.1:

    IMHO, releasing 5.0.1 is only worth the trouble if it fixes the really
    annoying problem with rerunning programs with breakpoints in shared libs:

       http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00230.html

    This patch is kind of a stopgap, but I've failed to come up with
    something better, and no-one else seems to be interested in solving
    this :-(.

  This problem probably affects all platforms with support for shared
  libraries.

Shall I add these to the TODO list?

Mark

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

* Re: GDB 5.1 TODO list
  2000-08-01 18:50 GDB 5.1 TODO list Andrew Cagney
  2000-08-01 21:43 ` Mark Kettenis
@ 2000-08-02  0:52 ` Eli Zaretskii
  2000-08-02  1:50   ` Andrew Cagney
  2000-08-02  3:29 ` richard
  2000-08-02  3:37 ` Denis Perchine
  3 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2000-08-02  0:52 UTC (permalink / raw)
  To: ac131313; +Cc: gdb

> Date: Wed, 02 Aug 2000 11:50:16 +1000
> From: Andrew Cagney <ac131313@cygnus.com>
> 
> Eliminate all warnings for at least one host/target for the flags:
> -Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses
> -Wpointer-arith -Wuninitialized

I tried to do this during the release cycle of 5.0, but one thing that
stopped me was the massive amount of warnings when compiling Readline.
It kinda makes the whole exercise futile...

Is it possible to reset the warning switches to a lesser level for
Readline alone?

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

* Re: GDB 5.1 TODO list
  2000-08-02  0:52 ` Eli Zaretskii
@ 2000-08-02  1:50   ` Andrew Cagney
  2000-08-02  3:17     ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew Cagney @ 2000-08-02  1:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: gdb

Eli Zaretskii wrote:
> 
> > Date: Wed, 02 Aug 2000 11:50:16 +1000
> > From: Andrew Cagney <ac131313@cygnus.com>
> >
> > Eliminate all warnings for at least one host/target for the flags:
> > -Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses
> > -Wpointer-arith -Wuninitialized
> 
> I tried to do this during the release cycle of 5.0, but one thing that
> stopped me was the massive amount of warnings when compiling Readline.
> It kinda makes the whole exercise futile...

Try configuring with

--enable-build-warnings=-Wimplicit,-Wreturn-type,-Wcomment,-Wtrigraphs,-Wformat,-Wparentheses,
-Wpointer-arith,-Werror

The directories where people are trying to flush warnings recognize this
configure option (GDB, BFD, ...).  The -Werror is to make certain
nothing is missed :-)

I had most targets building with -Wuninitialized but with the recent K&R
to ISO things have taken a hit.  I'd suggest trying just -Werror for
your target and then build up to something stronger.

	enjoy,
		Andrew

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

* Re: GDB 5.1 TODO list
  2000-08-02  1:50   ` Andrew Cagney
@ 2000-08-02  3:17     ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2000-08-02  3:17 UTC (permalink / raw)
  To: ac131313; +Cc: gdb

>  Date: Wed, 02 Aug 2000 18:50:19 +1000
>  From: Andrew Cagney <ac131313@cygnus.com>
> 
>  Try configuring with
>     --enable-build-warnings=-Wimplicit,-Wreturn-type,-Wcomment,-Wtrigraphs,-Wformat,-Wparentheses,
>  -Wpointer-arith,-Werror

The DJGPP port is already configured with
  --enable-build-warnings=-Wimplicit,-Wcomment,-Wformat,-Wparentheses,
    -Wpointer-arith

(See config/djgpp/djconfig.sh.)  I'll try to add others when I get to
it.  Last time I tried, there were too many warnings from sources that
aren't specific to the DJGPP target, and I *hate* to see warnings.

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

* Re: GDB 5.1 TODO list
  2000-08-01 18:50 GDB 5.1 TODO list Andrew Cagney
  2000-08-01 21:43 ` Mark Kettenis
  2000-08-02  0:52 ` Eli Zaretskii
@ 2000-08-02  3:29 ` richard
  2000-08-02 22:30   ` Andrew Cagney
  2000-08-02  3:37 ` Denis Perchine
  3 siblings, 1 reply; 10+ messages in thread
From: richard @ 2000-08-02  3:29 UTC (permalink / raw)
  To: ac131313; +Cc: GDB Discussion

On Wed, 02 Aug 2000 11:50:16 +1000, ac131313@cygnus.com wrote:
> GDB 5.1 - New features
> ======================

Shouldn't Objective-C support be on this list?

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

* Re: GDB 5.1 TODO list
  2000-08-01 18:50 GDB 5.1 TODO list Andrew Cagney
                   ` (2 preceding siblings ...)
  2000-08-02  3:29 ` richard
@ 2000-08-02  3:37 ` Denis Perchine
  2000-08-02 22:39   ` Andrew Cagney
  3 siblings, 1 reply; 10+ messages in thread
From: Denis Perchine @ 2000-08-02  3:37 UTC (permalink / raw)
  To: Andrew Cagney, GDB Discussion

> So here is a first cut at the things that are really on the 5.1 TODO
> list.  In previous discussions it has been suggested that for each
> release a small number of changes be identifed and completed (of course
> everyone is activly encouraged to also work on any other TODO or
> non-TODO items :-)

Is threads on Linux worked properly?
In 5.0 there was real mess with them. It was impossible to debug MT programs.

-- 
Sincerely Yours,
Denis Perchine

----------------------------------
E-Mail: dyp@perchine.com
HomePage: http://www.perchine.com/dyp/
FidoNet: 2:5000/120.5
----------------------------------

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

* Re: GDB 5.1 TODO list
  2000-08-02  3:29 ` richard
@ 2000-08-02 22:30   ` Andrew Cagney
  0 siblings, 0 replies; 10+ messages in thread
From: Andrew Cagney @ 2000-08-02 22:30 UTC (permalink / raw)
  To: richard; +Cc: GDB Discussion, Klee Dienes, Jim Ingham

richard@brainstorm.co.uk wrote:
> 
> On Wed, 02 Aug 2000 11:50:16 +1000, ac131313@cygnus.com wrote:
> > GDB 5.1 - New features
> > ======================
> 
> Shouldn't Objective-C support be on this list?

This is up to KleeD and JimI.  I'll put it down for definitly by 5.2
(which means it is nice to have for 5.1).

	Andrew

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

* Re: GDB 5.1 TODO list
  2000-08-02  3:37 ` Denis Perchine
@ 2000-08-02 22:39   ` Andrew Cagney
  0 siblings, 0 replies; 10+ messages in thread
From: Andrew Cagney @ 2000-08-02 22:39 UTC (permalink / raw)
  To: Denis Perchine; +Cc: GDB Discussion

Denis Perchine wrote:
> 
> > So here is a first cut at the things that are really on the 5.1 TODO
> > list.  In previous discussions it has been suggested that for each
> > release a small number of changes be identifed and completed (of course
> > everyone is activly encouraged to also work on any other TODO or
> > non-TODO items :-)
> 
> Is threads on Linux worked properly?
> In 5.0 there was real mess with them. It was impossible to debug MT programs.

MarkK has already noted a serious thread problem and fixing that has
gone on the list.

> * Thread support.  Right now, as soon as a thread finishes and exits,
>   you're hosed.  This problem is reported once a week or so.

One thing that is desparatly needed is a few good test cases.  It is
hard to tell if thread support is getting better or worse :-(

	Andrew

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

* Re: GDB 5.1 TODO list
@ 2000-08-03  9:38 Greg Galperin
  0 siblings, 0 replies; 10+ messages in thread
From: Greg Galperin @ 2000-08-03  9:38 UTC (permalink / raw)
  To: gdb, grg22

> > * Thread support.  Right now, as soon as a thread finishes and exits,
> >   you're hosed.  This problem is reported once a week or so.
> 
> One thing that is desparatly needed is a few good test cases.  It is
> hard to tell if thread support is getting better or worse :-(
> 
>         Andrew

I posted one in February which should help:

	http://sources.redhat.com/ml/bug-gdb/2000-02/msg00008.html

Below are four versions of that same idea, which test detached or joinable
threads, and exiting by calling pthread_exit() or just falling through.

This tests several forms of thread exiting, as well as the ability to
create a large number of threads (in a lifetime serially, not concurrently)
-- as MarkK explained to me,

> Be aware though, that GDB cannot handle a lot of threads right now.  It
> chokes on the thread ID's after that since they don't fit in 15 bits.  So
> you'll see something like:
> 
>    thread_db: map_id2thr failed: invalid thread handle
> 
> after 30 or so threads with your program.
> 
> Mark

IMHO it's important to both handle thread exit and have a lifetime budget
of more than a few dozen threads.

--grg


===========================================================================

////
//// detached, pthread_exit()
////

#include <pthread.h>
#include <stdio.h>
#include <assert.h>

#define NTHREADS 100000
#define PRINTEVERY 10000

// committing the grossness of putting an int where a void* is expected.
void* exitImmediately(void* count)
{
    if ((int)count % PRINTEVERY == 0)
	printf("%d\n",(int)count);
    pthread_exit(NULL);
}

int main()
{
    pthread_t pthread;
    pthread_attr_t attr;
    int retval;
    int i;

    // set up attr to detach
    retval = pthread_attr_init(&attr);
    assert(retval==0);		// success
    retval = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
    assert(retval==0);		// success

    for (i=0; i<NTHREADS; ++i)
	pthread_create(&pthread, &attr, exitImmediately, (void*)i);
}

===========================================================================

////
//// detached, fall through
////

#include <pthread.h>
#include <stdio.h>
#include <assert.h>

#define NTHREADS 100000
#define PRINTEVERY 10000

// committing the grossness of putting an int where a void* is expected.
void* exitImmediately(void* count)
{
    if ((int)count % PRINTEVERY == 0)
	printf("%d\n",(int)count);
    return NULL;
}

int main()
{
    pthread_t pthread;
    pthread_attr_t attr;
    int retval;
    int i;

    // set up attr to detach
    retval = pthread_attr_init(&attr);
    assert(retval==0);		// success
    retval = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
    assert(retval==0);		// success

    for (i=0; i<NTHREADS; ++i)
	pthread_create(&pthread, &attr, exitImmediately, (void*)i);
}

===========================================================================

////
//// joinable, pthread_exit()
////

#include <stdio.h>
#include <pthread.h>

#define NTHREADS 10000

// committing the grossness of putting an int where a void* is expected.
void* exitImmediately(void* count)
{
    printf("tid %d: I'm #%d\n", pthread_self(), (int)count);
    pthread_exit(NULL);
}

int main(int argc, char* argv[])
{
    pthread_t p_thread;
    int i, retCreate, retJoin;

    for (i=0; i<NTHREADS; ++i) {
	retCreate = pthread_create(&p_thread, NULL, exitImmediately, (void*)i);
	if (retCreate == 0) {
	    retJoin = pthread_join(p_thread, NULL);
	}
	printf("spawned %d, return code %d, join returned %d\n", i,
	       retCreate, retJoin);
    }
}

===========================================================================

////
//// joinable, fall through
////

#include <stdio.h>
#include <pthread.h>

#define NTHREADS 10000

// committing the grossness of putting an int where a void* is expected.
void* exitImmediately(void* count)
{
    printf("tid %d: I'm #%d\n", pthread_self(), (int)count);
    return NULL;
}

int main(int argc, char* argv[])
{
    pthread_t p_thread;
    int i, retCreate, retJoin;

    for (i=0; i<NTHREADS; ++i) {
	retCreate = pthread_create(&p_thread, NULL, exitImmediately, (void*)i);
	if (retCreate == 0) {
	    retJoin = pthread_join(p_thread, NULL);
	}
	printf("spawned %d, return code %d, join returned %d\n", i,
	       retCreate, retJoin);
    }
}

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

end of thread, other threads:[~2000-08-03  9:38 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-08-01 18:50 GDB 5.1 TODO list Andrew Cagney
2000-08-01 21:43 ` Mark Kettenis
2000-08-02  0:52 ` Eli Zaretskii
2000-08-02  1:50   ` Andrew Cagney
2000-08-02  3:17     ` Eli Zaretskii
2000-08-02  3:29 ` richard
2000-08-02 22:30   ` Andrew Cagney
2000-08-02  3:37 ` Denis Perchine
2000-08-02 22:39   ` Andrew Cagney
2000-08-03  9:38 Greg Galperin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).