Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* Re: Regressions problem (200 failures)
@ 2000-04-01  0:00 Hans-Bernhard Broeker
  0 siblings, 0 replies; 7+ messages in thread
From: Hans-Bernhard Broeker @ 2000-04-01  0:00 UTC (permalink / raw)
  To: gdb; +Cc: Eli Zaretskii

This is an answer to < 20000301123337B.mitchell@codesourcery.com >

[I've been pointed to this discussion by Eli Zaretskii, but I'm not on the
gdb mailing list, myself. I just read through it on the WWW archive. So
please, if you answer, Cc: to me, if possible. Thank you.]

The point raised in this discussion has, by coincidence, caused a similar
problem, with the DJGPP release version of GCC 2.95.2 and GDB 4.18. The
problem is that for very short functions (one, maybe two lines of actual
code, between the braces), gdb would not stop *at all* if you 'step' into
a function from outside, because of badly positioned line number debug
symbols.

Looking at the assembly generated by GCC, it turned out that the problem
lies in the way the function prologues and epilogues were written,
compared to earlier GCC releases. So, to answer one of the questions
raised in your discussion: to some extent, the prologue/epilogue have
indeed changed, since 1994. The whole method of outputting prologues has
been changed, since gcc-2.8.1, it seems, even though the typical set of
machine operations has stayed the same, for this platform. Originally,
prologues and epilogues were generated directly as assembly, by a
specialized function, i.e. they were not subject to RTL transformations.
Now, by default at least, they're generated as RTL, rather early in the
compilation, and subject to modification along with the 'real code'.

As to the question where the first line number label ought to be put, and
what line it should point, I think the behaviour of previous GCC/GDB
combinations was perfectly sane: the line number opcode is output right
after the prologue, and it points to the line the next machine instruction
originated from (initialization of an automatic variable, if present, an
executable statement otherwise). 

Opposed to this expected behaviour, gcc-2.95.2 outputs a line note
*before* the prologue (and one for the closing brace after the epilogue,
instead of before it, as it used to be). By disabling the RTL-style
prologue generating mechanism (undocumented GCC option
-mno-schedule-prologue), you get back the traditional behaviour.

Currently, the conclusion of discussion between me and Eli is that this
constitutes a bug in gcc-2.95.2. Wether or not that's still present in the
current snapshot remains to be checked. AFAICS, the GCC patch from Mark
Mitchell that caused all this hassle for your GDB testsuite meant to fix
that, but didn't work out as planned.

Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
Even if all the snow were burnt, ashes would remain.



^ permalink raw reply	[flat|nested] 7+ messages in thread
[parent not found: <200003021010.LAA13693@reisser.regent.e-technik.tu-muenchen.de>]
* Regressions problem (200 failures)
@ 2000-03-01  9:49 Donn Terry
  2000-04-01  0:00 ` Donn Terry
       [not found] ` <20000301123337B.mitchell@codesourcery.com>
  0 siblings, 2 replies; 7+ messages in thread
From: Donn Terry @ 2000-03-01  9:49 UTC (permalink / raw)
  To: 'gdb@sourceware.cygnus.com'; +Cc: 'mark@codesourcery.com'

Andrew has asked me to see if there are others affected by this...

On 2/17, the following patch was made to gcc:

> 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
>
>       * function.c (thread_prologue_and_epilogue_insns): Put a line note
>       after the prologue.

It has the effect, in my case at least, of causing gdb to break at the "{"
of many functions when breaking at a function name (5 of 5 main()s that I
tried, but not too many other functions).  (Usually gdb breaks breaks at
the first statement rather than somewhere in the function prologue).
I discussed this with Mark Mitchell, and he concurs that that could be
a side-effect of the patch (whose purpose is to assure that SOME
breakpoint occurs at the beginning of each function).

That, in itself, isn't a problem (except possibly with user perception).
However,
the gdb regressions are written in such a way that they expect to stop at
the
first statement (and often do a single "n", expecting the first statement to
be executed).  This causes well over 200 (mostly cascade) regression
failures.

Andrew asserts that the regressions aren't being too picky in this regard
because
of user expectation.

The problem for me is I suspect that they're BOTH right, but there are
regression
failures unless something happens.

Are there others out there who are seeing this (run the regressions pointing
it at a new gcc)?  (The gcc CVS as of 5:30 or so PST last night still
exhibited the
problem.)  Does anyone have any thougts on how to proceed?

Donn Terry
Speaking, of course, only for myself.
From Guenther.Grau@marconicomms.com Wed Mar 01 10:31:00 2000
From: Guenther Grau <Guenther.Grau@marconicomms.com>
To: gdb@sourceware.cygnus.com
Subject: Re: Try out the patch database
Date: Wed, 01 Mar 2000 10:31:00 -0000
Message-id: <38BD61EF.81A4E3C6@marconicomms.com>
References: <200002292134.QAA10095@zwingli.cygnus.com> <1000229221310.ZM16579@ocotillo.lan> <npem9ulja1.fsf@zwingli.cygnus.com>
X-SW-Source: 2000-03/msg00011.html
Content-length: 602

Hi,

> > > Take a look at http://sourceware.cygnus.com/gdb/contribute.html , and
> > > let me know what you think.

I have a few comments on this.

First of all: great to have a bug database online!

Second, why is the category named gdb-patches instead of gdb?
Is it not intended for people to report bugs? Is it only
for patches?

Third, (but not very important) why do you use persistant
cookies? I don't like cookies und usually disable them,
but I could live with session cookies, if you really insist
on them. But persistent cookies that last for a month are
not what I like.

Thanx,

  Guenther
From tromey@cygnus.com Wed Mar 01 11:00:00 2000
From: Tom Tromey <tromey@cygnus.com>
To: gdb@sourceware.cygnus.com
Subject: Re: Try out the patch database
Date: Wed, 01 Mar 2000 11:00:00 -0000
Message-id: <877lfmbkah.fsf@cygnus.com>
References: <200002292134.QAA10095@zwingli.cygnus.com> <1000229221310.ZM16579@ocotillo.lan> <npem9ulja1.fsf@zwingli.cygnus.com> <38BD61EF.81A4E3C6@marconicomms.com>
X-SW-Source: 2000-03/msg00012.html
Content-length: 548

>>>>> "Guenther" == Guenther Grau <Guenther.Grau@marconicomms.com> writes:

Guenther> Third, (but not very important) why do you use persistant
Guenther> cookies? I don't like cookies und usually disable them,
Guenther> but I could live with session cookies, if you really insist
Guenther> on them. But persistent cookies that last for a month are
Guenther> not what I like.

This is a decision made by the gnatsweb authors.  I don't know why
they did it, and I don't really like it either, but you'd have to take
it up with them.

Tom
From mark@codesourcery.com Wed Mar 01 12:26:00 2000
From: Mark Mitchell <mark@codesourcery.com>
To: donnte@microsoft.com
Cc: gdb@sourceware.cygnus.com
Subject: Re: Regressions problem (200 failures)
Date: Wed, 01 Mar 2000 12:26:00 -0000
Message-id: <20000301123337B.mitchell@codesourcery.com>
References: <BB61526CDE70D2119D0F00805FBECA2F12A39A08@RED-MSG-55>
X-SW-Source: 2000-03/msg00013.html
Content-length: 677

>>>>> "Donn" == Donn Terry <donnte@microsoft.com> writes:

    Donn> regressions pointing it at a new gcc)?  (The gcc CVS as of
    Donn> 5:30 or so PST last night still exhibited the problem.)
    Donn> Does anyone have any thougts on how to proceed?

I have one.  (I communicated this to Donn privately, so this is for
the list.)

I think GCC shouldn't put out any line notes for the prologue in the
first place.  That's what's causing the problem, indirectly.  Does GDB
require a line note in the prologue, or can we wait until the first
bit of real code?

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com
From kingdon@redhat.com Wed Mar 01 13:48:00 2000
From: Jim Kingdon <kingdon@redhat.com>
To: "Sharath Kumar" <sharathibm@theglobe.com>
Cc: gdb@sourceware.cygnus.com
Subject: Re: about breakpoints
Date: Wed, 01 Mar 2000 13:48:00 -0000
Message-id: <bg0ua4b10.fsf@rtl.cygnus.com>
References: <NPPAALHJCJDFIAAA@theglobe.com>
X-SW-Source: 2000-03/msg00014.html
Content-length: 568

> Can anyone give me some detailed info about how breakpoints are
> implemented in gdb? I have the gdb source, but if you have some docs
> it will be great.

That's not a very specific question, but there is a good introduction
in doc/gdbint.texi in the GDB distribution.
Also see:
  breakpoint.c in GDB
  "man ptrace" and/or "man proc" depending on your OS

If the documentation you want doesn't exist, you might consider
tracking down information and writing documentation (and publishing it
via http://www.oswg.org/ or something) - that can be a good way to learn.
From ac131313@cygnus.com Wed Mar 01 14:16:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: GDB Discussion <gdb@sourceware.cygnus.com>, GDB Patches <gdb-patches@sourceware.cygnus.com>
Subject: [MAINT] Daniel Berlin is C++ language maintainer
Date: Wed, 01 Mar 2000 14:16:00 -0000
Message-id: <38BD967B.CD2AF9F8@cygnus.com>
X-SW-Source: 2000-03/msg00015.html
Content-length: 336

Hello,

I'm very pleased to announce that Daniel Berlin has agreed to take on
the responsibility of C++ language support within GDB.  As many are
probably aware, Dan's been contributing a flurry of patches that fix
numerous C++ problems for some time.

Nice day for it!

		Andrew

C++ language support	Daniel Berlin		dan@cgsoftware.com
From kingdon@redhat.com Wed Mar 01 14:30:00 2000
From: Jim Kingdon <kingdon@redhat.com>
To: gdb@sourceware.cygnus.com
Subject: Re: Dependence on config.status
Date: Wed, 01 Mar 2000 14:30:00 -0000
Message-id: <bem9u49sh.fsf@rtl.cygnus.com>
References: <200002280657.BAA27090@indy.delorie.com> <38BCCA84.74A4143E@cygnus.com>
X-SW-Source: 2000-03/msg00016.html
Content-length: 816

> > Why does GDB need to be dependent on config.status, in addition to
> > config.h?
> 
> I don't know and yes I agree with you.  I think it is just history.

Well, if memory serves, if you re-ran configure in such a way that
tm.h started linking to a different file, then the config.status
dependency was the only way to force a rebuild.  I think that is still
true (at least, I glanced through the Makefile.in and configure.in and
that's what it looked like).

Having said that, there is sometimes a tradeoff between having
dependencies correct and having them useful.  Making people type "make
clean" in certain obscure situations may not be all that bad (although
it tends to be pretty confusing as you usually don't realize what is
going on until GDB is acting in strange and inexplicable ways).
From kettenis@wins.uva.nl Wed Mar 01 15:40:00 2000
From: Mark Kettenis <kettenis@wins.uva.nl>
To: ac131313@cygnus.com
Cc: gdb@sourceware.cygnus.com, gdb-patches@sourceware.cygnus.com
Subject: Re: [MAINT] x86 maintainers .....
Date: Wed, 01 Mar 2000 15:40:00 -0000
Message-id: <200003012340.e21Ne6o00157@delius.kettenis.local>
References: <38BCA2B9.3BDE66AD@cygnus.com>
X-SW-Source: 2000-03/msg00017.html
Content-length: 406

   Date: Wed, 01 Mar 2000 15:55:21 +1100
   From: Andrew Cagney <ac131313@cygnus.com>

   Hello,

   I'd like to put forward the following:


   x86 target		Mark Kettenis		kettenis@gnu.org

   GNU/Linux/x86 native & host
			   Jim Blandy		jimb@cygnus.com
			   Mark Kettenis		kettenis@gnu.org


No problems with those.  I'll start working on those once you've added
them to the MAINTAINERS file :-).

Mark
From gzp@gzp.org.hu Wed Mar 01 18:21:00 2000
From: "Gabor Z. Papp" <gzp@gzp.org.hu>
To: gdb@sourceware.cygnus.com
Subject: gdb cvs
Date: Wed, 01 Mar 2000 18:21:00 -0000
Message-id: <20000302032052.L17285@gzp.org.hu>
References: <200003011940.e21Je9528423@mail.gzp.org.hu>
X-SW-Source: 2000-03/msg00018.html
Content-length: 110

| cvs checkout: authorization failed: server anoncvs.cygnus.com rejected access

What is with the cvs access?
From ac131313@cygnus.com Wed Mar 01 19:56:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: "Gabor Z. Papp" <gzp@gzp.org.hu>
Cc: gdb@sourceware.cygnus.com
Subject: Re: gdb cvs
Date: Wed, 01 Mar 2000 19:56:00 -0000
Message-id: <38BDE5F9.49AD7232@cygnus.com>
References: <200003011940.e21Je9528423@mail.gzp.org.hu> <20000302032052.L17285@gzp.org.hu>
X-SW-Source: 2000-03/msg00019.html
Content-length: 324

"Gabor Z. Papp" wrote:
> 
> | cvs checkout: authorization failed: server anoncvs.cygnus.com rejected access
> 
> What is with the cvs access?

Same problem as the BINUTILS repository - it's been moved.  Both GDB and
BINUTILS are drawn from a common CVS repository.

Check http://sourceware.cygnus.com/gdb/

	enjoy,
		Andrew
From gzp@gzp.org.hu Wed Mar 01 19:59:00 2000
From: "Gabor Z. Papp" <gzp@gzp.org.hu>
To: Andrew Cagney <ac131313@cygnus.com>
Cc: gdb@sourceware.cygnus.com
Subject: Re: gdb cvs
Date: Wed, 01 Mar 2000 19:59:00 -0000
Message-id: <20000302045932.A14600@gzp.org.hu>
References: <200003011940.e21Je9528423@mail.gzp.org.hu> <20000302032052.L17285@gzp.org.hu> <38BDE5F9.49AD7232@cygnus.com>
X-SW-Source: 2000-03/msg00020.html
Content-length: 322

Andrew Cagney wrote:

| > What is with the cvs access?
| 
| Same problem as the BINUTILS repository - it's been moved.  Both GDB and
| BINUTILS are drawn from a common CVS repository.

Thanks, now works fine. Only this /cvs/src isn't good, at
least here. Both binutils and gdb updated to src/ instead of
gdf/ or binutils/
From kingdon@redhat.com Wed Mar 01 20:13:00 2000
From: Jim Kingdon <kingdon@redhat.com>
To: Mark Mitchell <mark@codesourcery.com>
Cc: gdb@sourceware.cygnus.com
Subject: Re: Regressions problem (200 failures)
Date: Wed, 01 Mar 2000 20:13:00 -0000
Message-id: <bd7pe3t7t.fsf@rtl.cygnus.com>
References: <BB61526CDE70D2119D0F00805FBECA2F12A39A08@RED-MSG-55> <20000301123337B.mitchell@codesourcery.com>
X-SW-Source: 2000-03/msg00021.html
Content-length: 419

> I think GCC shouldn't put out any line notes for the prologue in the
> first place.  That's what's causing the problem, indirectly.  Does GDB
> require a line note in the prologue, or can we wait until the first
> bit of real code?

GDB expects the first line number to be for the real code (unless
something has changed, or I'm remembering it wrong or something - I
didn't actually play around with the test cases).
From kingdon@redhat.com Wed Mar 01 20:34:00 2000
From: Jim Kingdon <kingdon@redhat.com>
To: Andrew Cagney <ac131313@cygnus.com>
Cc: GDB Discussion <gdb@sourceware.cygnus.com>
Subject: Re: [MAINT/RFC] Start devolving maintenance responsibility
Date: Wed, 01 Mar 2000 20:34:00 -0000
Message-id: <bbt4y3s8k.fsf@rtl.cygnus.com>
References: <38BC81A0.17D25C8@cygnus.com>
X-SW-Source: 2000-03/msg00022.html
Content-length: 1449

> Individuals who make changes to the debugger need approval from all
> relevant domain maintainers before those changed can be checked in.

Are you saying that making a change across a large number of files
requires a dozen or so people to sign off on it?  While I (probably)
don't have a problem with that when something substantive and
pervasive is being redesigned, it seems like it would be a mistake to
take that attitude with respect to stylistic changes and cleaning up
lint and the like.  And I'm thinking that people with blanket write
privs should be capable of figuring out which is which (or else they
wouldn't have blanket write privs).

I guess part of what I'm getting at is that I don't want to go down
the dead end we did with CVS, in which we (well, I, although I had at
least the acquiescence of others) tried to write up a lot of formal
policies and procedures and such.  Instead, the key is a set of
maintainers who respect each other's expertise and willingness to work
together.  Some basic level of rules/guidelines is helpful, but I
wonder whether concepts and words like "devolve", "maintenance
domain", and "responsibility" are going too far.

Or (to ask another way), what is the problem with the status quo?  If
it is that the paragraph about first and second maintainers goes too
far in telling first maintainers how to relate to their second
maintainers, let's fuzz it up rather than trying to spell things out
more.
From ac131313@cygnus.com Wed Mar 01 21:00:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: GDB Discussion <gdb@sourceware.cygnus.com>
Cc: GDB Patches <gdb-patches@sourceware.cygnus.com>
Subject: [MAINT] Peter Schauer and Michael Snyder for ``Blanket Write'' maintainers
Date: Wed, 01 Mar 2000 21:00:00 -0000
Message-id: <38BDF545.34DB6172@cygnus.com>
X-SW-Source: 2000-03/msg00023.html
Content-length: 454

Hello,

I'd like to put forward that both:

    Michael Snyder          msnyder@cygnus.com
    Peter Schauer          
Peter.Schauer@regent.e-technik.tu-muenchen.de

be added to the ``Blanket Write Privs'' maintainers list.

Michael Snyder has been hacking continuously on GDB since at least '96
and stands as Red Hat's most experienced GDB developer.  In Peter
Shauer, case he has been working on improving GDB for much longer (the
early '90).

	Andrew
From mark@codesourcery.com Wed Mar 01 21:26:00 2000
From: Mark Mitchell <mark@codesourcery.com>
To: kingdon@redhat.com
Cc: donnte@microsoft.com, gdb@sourceware.cygnus.com
Subject: Re: Regressions problem (200 failures)
Date: Wed, 01 Mar 2000 21:26:00 -0000
Message-id: <20000301213331A.mitchell@codesourcery.com>
References: <BB61526CDE70D2119D0F00805FBECA2F12A39A08@RED-MSG-55> <20000301123337B.mitchell@codesourcery.com> <bd7pe3t7t.fsf@rtl.cygnus.com>
X-SW-Source: 2000-03/msg00024.html
Content-length: 718

>>>>> "Jim" == Jim Kingdon <kingdon@redhat.com> writes:

    >> I think GCC shouldn't put out any line notes for the prologue
    >> in the first place.  That's what's causing the problem,
    >> indirectly.  Does GDB require a line note in the prologue, or
    >> can we wait until the first bit of real code?

    Jim> GDB expects the first line number to be for the real code
    Jim> (unless something has changed, or I'm remembering it wrong or
    Jim> something - I didn't actually play around with the test
    Jim> cases).

Good, that means that the bug is in GCC -- even before my changes.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com
From ac131313@cygnus.com Wed Mar 01 23:15:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: Jim Kingdon <kingdon@redhat.com>
Cc: GDB Discussion <gdb@sourceware.cygnus.com>
Subject: Re: [MAINT/RFC] Start devolving maintenance responsibility
Date: Wed, 01 Mar 2000 23:15:00 -0000
Message-id: <38BE146B.46ED6E4D@cygnus.com>
References: <38BC81A0.17D25C8@cygnus.com> <bbt4y3s8k.fsf@rtl.cygnus.com>
X-SW-Source: 2000-03/msg00025.html
Content-length: 2686

Jim Kingdon wrote:

[A response, I sometimes think this is being proposed in a vacume. 
Thanks!]

> > Individuals who make changes to the debugger need approval from all
> > relevant domain maintainers before those changed can be checked in.

> Are you saying that making a change across a large number of files
> requires a dozen or so people to sign off on it?  While I (probably)
> don't have a problem with that when something substantive and
> pervasive is being redesigned, it seems like it would be a mistake to
> take that attitude with respect to stylistic changes and cleaning up
> lint and the like.  And I'm thinking that people with blanket write
> privs should be capable of figuring out which is which (or else they
> wouldn't have blanket write privs).

Some how, I'd expect common sense to prevail.

With a stylistic change (ISO-C'ism, -W...), I would not expect it to be
attempted in a single hit.
I'd instead expect:

	o	basic consensus by the maintainers
		on the move

	o	individuals (blanket maintainers or
		other) to _incrementally_ work
		through the sources.  At each stage
		a heads up before hand so that the
		group knows whats about to hit them :-)

As an asside, I think I've so far used so called blanket check-ins privs
to:

	o	<wait.h> -> "gdb_wait.h"

	o	fixing a #include in arm-tdep.c

the first was agreed on months ago and the second was so small to be in
the noise.

> I guess part of what I'm getting at is that I don't want to go down
> the dead end we did with CVS, in which we (well, I, although I had at
> least the acquiescence of others) tried to write up a lot of formal
> policies and procedures and such.  Instead, the key is a set of
> maintainers who respect each other's expertise and willingness to work
> together.  Some basic level of rules/guidelines is helpful, but I
> wonder whether concepts and words like "devolve", "maintenance
> domain", and "responsibility" are going too far.

Sorry, devolve, as a word, is probably more meaningful to people from
Commonwealth countries.

> Or (to ask another way), what is the problem with the status quo?  If
> it is that the paragraph about first and second maintainers goes too
> far in telling first maintainers how to relate to their second
> maintainers, let's fuzz it up rather than trying to spell things out
> more.

Perhaphs that can be done that way.  The wording was probably lousy.

The underlying concern I have isn't with people like you that have been
hacking on open code for years, its with people familar with GDB but not
so familar with open source.  For that reason, I think it is useful to
spell out, in basic terms, how the system should work.

	thanks,
		Andrew
From eliz@delorie.com Thu Mar 02 02:08:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: kingdon@redhat.com
Cc: gdb@sourceware.cygnus.com
Subject: Re: Dependence on config.status
Date: Thu, 02 Mar 2000 02:08:00 -0000
Message-id: <200003021007.FAA04124@indy.delorie.com>
References: <200002280657.BAA27090@indy.delorie.com> <38BCCA84.74A4143E@cygnus.com> <bem9u49sh.fsf@rtl.cygnus.com>
X-SW-Source: 2000-03/msg00026.html
Content-length: 271

> Well, if memory serves, if you re-ran configure in such a way that
> tm.h started linking to a different file, then the config.status
> dependency was the only way to force a rebuild.

How about adding some #define to config.h that would also change when
this happens?
From Peter.Schauer@regent.e-technik.tu-muenchen.de Thu Mar 02 02:11:00 2000
From: "Peter.Schauer" <Peter.Schauer@regent.e-technik.tu-muenchen.de>
To: kingdon@redhat.com (Jim Kingdon)
Cc: mark@codesourcery.com, donnte@microsoft.com, gdb@sourceware.cygnus.com
Subject: Re: Regressions problem (200 failures)
Date: Thu, 02 Mar 2000 02:11:00 -0000
Message-id: <200003021010.LAA13693@reisser.regent.e-technik.tu-muenchen.de>
References: <bd7pe3t7t.fsf@rtl.cygnus.com>
X-SW-Source: 2000-03/msg00027.html
Content-length: 850

> > I think GCC shouldn't put out any line notes for the prologue in the
> > first place.  That's what's causing the problem, indirectly.  Does GDB
> > require a line note in the prologue, or can we wait until the first
> > bit of real code?
> 
> GDB expects the first line number to be for the real code (unless
> something has changed, or I'm remembering it wrong or something - I
> didn't actually play around with the test cases).

In case it isn't obvious:

What is `real code' ?
The initialization of local variables, is it considered part of the
prologue or real code ?

For practical debugging purposes (especially C++), the line number
information (and thus the breakpoint) has to be put before the initialization
code for local variables, so that we can debug object initialization.

-- 
Peter Schauer			pes@regent.e-technik.tu-muenchen.de
From mark@codesourcery.com Thu Mar 02 02:27:00 2000
From: Mark Mitchell <mark@codesourcery.com>
To: Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE
Cc: kingdon@redhat.com, donnte@microsoft.com, gdb@sourceware.cygnus.com
Subject: Re: Regressions problem (200 failures)
Date: Thu, 02 Mar 2000 02:27:00 -0000
Message-id: <20000302023420H.mitchell@codesourcery.com>
References: <bd7pe3t7t.fsf@rtl.cygnus.com> <200003021010.LAA13693@reisser.regent.e-technik.tu-muenchen.de>
X-SW-Source: 2000-03/msg00028.html
Content-length: 762

>>>>> "Peter" == Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE> writes:

    Peter> For practical debugging purposes (especially C++), the line
    Peter> number information (and thus the breakpoint) has to be put
    Peter> before the initialization code for local variables, so that
    Peter> we can debug object initialization.

But the line number itself doesn't have to indicate the `{'; it could
indicate the next line, if that's what GDB wants.  This is more
possible than it used to be since the C++ front-end now puts out whole
functions at once, rather than processing a statement at a time.

Still, it's non-trivial.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com
From Peter.Schauer@regent.e-technik.tu-muenchen.de Thu Mar 02 03:43:00 2000
From: "Peter.Schauer" <Peter.Schauer@regent.e-technik.tu-muenchen.de>
To: mark@codesourcery.com (Mark Mitchell)
Cc: kingdon@redhat.com, donnte@microsoft.com, gdb@sourceware.cygnus.com
Subject: Re: Regressions problem (200 failures)
Date: Thu, 02 Mar 2000 03:43:00 -0000
Message-id: <200003021143.MAA14294@reisser.regent.e-technik.tu-muenchen.de>
References: <20000302023420H.mitchell@codesourcery.com>
X-SW-Source: 2000-03/msg00029.html
Content-length: 935

>     Peter> For practical debugging purposes (especially C++), the line
>     Peter> number information (and thus the breakpoint) has to be put
>     Peter> before the initialization code for local variables, so that
>     Peter> we can debug object initialization.
> 
> But the line number itself doesn't have to indicate the `{'; it could
> indicate the next line, if that's what GDB wants.  This is more
> possible than it used to be since the C++ front-end now puts out whole
> functions at once, rather than processing a statement at a time.
> 
> Still, it's non-trivial.

From a pure user perspective (for now not considering implementation problems 
with GCC or GDB), a breakpoint on the opening brace is not what I want,
as I will almost always have to step over it.
I'd expect a breakpoint on the first local variable that needs initalization,
or the first statement.

-- 
Peter Schauer			pes@regent.e-technik.tu-muenchen.de
From muller@cerbere.u-strasbg.fr Thu Mar 02 03:55:00 2000
From: Pierre Muller <muller@cerbere.u-strasbg.fr>
To: "Peter.Schauer" <Peter.Schauer@regent.e-technik.tu-muenchen.de>
Cc: gdb@sourceware.cygnus.com
Subject: Re: Regressions problem (200 failures)
Date: Thu, 02 Mar 2000 03:55:00 -0000
Message-id: <200003021206.NAA32271@cerbere.u-strasbg.fr>
References: <20000302023420H.mitchell@codesourcery.com>
X-SW-Source: 2000-03/msg00030.html
Content-length: 1618

At 12:43 02/03/00 +0100, Peter.Schauer wrote:
>>     Peter> For practical debugging purposes (especially C++), the line
>>     Peter> number information (and thus the breakpoint) has to be put
>>     Peter> before the initialization code for local variables, so that
>>     Peter> we can debug object initialization.
>> 
>> But the line number itself doesn't have to indicate the `{'; it could
>> indicate the next line, if that's what GDB wants.  This is more
>> possible than it used to be since the C++ front-end now puts out whole
>> functions at once, rather than processing a statement at a time.
>> 
>> Still, it's non-trivial.
>
>>From a pure user perspective (for now not considering implementation
problems 
>with GCC or GDB), a breakpoint on the opening brace is not what I want,
>as I will almost always have to step over it.
>I'd expect a breakpoint on the first local variable that needs initalization,
>or the first statement.

  I don't agree here !
  If your breakpoint stop on the open brace (or the begin statement for the
pascal extension
I want to submit)
  you get the choice to use either:

  "Step" if you want to debug the function initialization code
or
  "Next" if you don't want to !

  That's really just a matter of taste...
but if the function breakpoint is only set after the hidden initialization 
it will get very difficult to debug that code (you will not be able to 
set an explicit breakpoint there !)




Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller@ics.u-strasbg.fr
Phone : (33)-3-88-41-40-07  Fax : (33)-3-88-41-40-99
From muller@cerbere.u-strasbg.fr Thu Mar 02 04:43:00 2000
From: Pierre Muller <muller@cerbere.u-strasbg.fr>
To: gdb@sourceware.cygnus.com
Subject: Indent -gnu ?
Date: Thu, 02 Mar 2000 04:43:00 -0000
Message-id: <200003021257.NAA00259@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00031.html
Content-length: 705

   I want to format my PATCH for pascal extension before submitting it 
so I read that I should use GNU indent with -gnu option !

  But I tried this on c-lang.h just to see
and the result is that the current header file does not conform to 
indent output !

  So my question is simply should I run indent on my files
or should I send them without !


Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller@ics.u-strasbg.fr
Phone : (33)-3-88-41-40-07  Fax : (33)-3-88-41-40-99



Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller@ics.u-strasbg.fr
Phone : (33)-3-88-41-40-07  Fax : (33)-3-88-41-40-99
From kettenis@wins.uva.nl Thu Mar 02 04:46:00 2000
From: Mark Kettenis <kettenis@wins.uva.nl>
To: mark@codesourcery.com
Cc: Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE, kingdon@redhat.com, donnte@microsoft.com, gdb@sourceware.cygnus.com
Subject: Re: Regressions problem (200 failures)
Date: Thu, 02 Mar 2000 04:46:00 -0000
Message-id: <200003021246.e22CkWL00549@delius.kettenis.local>
References: <bd7pe3t7t.fsf@rtl.cygnus.com> <200003021010.LAA13693@reisser.regent.e-technik.tu-muenchen.de> <20000302023420H.mitchell@codesourcery.com>
X-SW-Source: 2000-03/msg00032.html
Content-length: 1704

   From: Mark Mitchell <mark@codesourcery.com>
   Date: Thu, 02 Mar 2000 02:34:20 -0800

   >>>>> "Peter" == Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE> writes:

       Peter> For practical debugging purposes (especially C++), the line
       Peter> number information (and thus the breakpoint) has to be put
       Peter> before the initialization code for local variables, so that
       Peter> we can debug object initialization.

   But the line number itself doesn't have to indicate the `{'; it could
   indicate the next line, if that's what GDB wants.  This is more
   possible than it used to be since the C++ front-end now puts out whole
   functions at once, rather than processing a statement at a time.

   Still, it's non-trivial.

The following might be relevant for this discussion:

The comment on symtab.c:find_function_start_sal() says:

/* Given a function symbol SYM, find the symtab and line for the start
   of the function.
   If the argument FUNFIRSTLINE is nonzero, we want the first line
   of real code inside the function.  */

If you look at the implementation of find_function_start_sal() you'll
see that it uses SKIP_PROLOGUE to skip over the function prologue if
FUNFIRSTLINE is nonzero, and then chooses the next line after the
prologue.  So GDB shouldn't have any problems with line notes for the
prologue.

The implementation of SKIP_PROLOGUE for the i386 lives in
i386-tdep.c:i386_skip_prologue().  According to the ChangeLog, this
code has not been changed since early 1994 (Hi Peter!), and it is not
unlikely that it has suffered some bit rot since then.  Are the
prologue's generated by GCC any different from those generated back in
1994?

Mark
From Peter.Schauer@regent.e-technik.tu-muenchen.de Thu Mar 02 05:22:00 2000
From: "Peter.Schauer" <Peter.Schauer@regent.e-technik.tu-muenchen.de>
To: kettenis@wins.uva.nl (Mark Kettenis)
Cc: gdb@sourceware.cygnus.com
Subject: Re: Regressions problem (200 failures)
Date: Thu, 02 Mar 2000 05:22:00 -0000
Message-id: <200003021322.OAA14220@reisser.regent.e-technik.tu-muenchen.de>
References: <200003021246.e22CkWL00549@delius.kettenis.local>
X-SW-Source: 2000-03/msg00034.html
Content-length: 1423

> The following might be relevant for this discussion:
> 
> The comment on symtab.c:find_function_start_sal() says:
> 
> /* Given a function symbol SYM, find the symtab and line for the start
>    of the function.
>    If the argument FUNFIRSTLINE is nonzero, we want the first line
>    of real code inside the function.  */
> 
> If you look at the implementation of find_function_start_sal() you'll
> see that it uses SKIP_PROLOGUE to skip over the function prologue if
> FUNFIRSTLINE is nonzero, and then chooses the next line after the
> prologue.  So GDB shouldn't have any problems with line notes for the
> prologue.

SKIP_PROLOGUE is very machine dependent and sometimes you can't get it right
(especially with optimization and instruction reordering). If GDB's
prologue skipping stops to early, then we are at the mercy of GCC to provide
us with the `correct' line note, and additional line notes in the prologue
will confuse GDB under these circumstances.

And if GCC puts a line note at the first instruction after the prologue, and
marks it with the line number of the opening brace, then GDB will
stop at the opening brace, which I would like to avoid at all cost, because
I find it confusing.

So there are actually two questions:
At which instruction should GCC put the first line note and which source line
number should be associated with the note.

-- 
Peter Schauer			pes@regent.e-technik.tu-muenchen.de
From kettenis@wins.uva.nl Thu Mar 02 05:22:00 2000
From: Mark Kettenis <kettenis@wins.uva.nl>
To: muller@cerbere.u-strasbg.fr
Cc: gdb@sourceware.cygnus.com
Subject: Re: Indent -gnu ?
Date: Thu, 02 Mar 2000 05:22:00 -0000
Message-id: <200003021321.e22DLrF00601@delius.kettenis.local>
References: <200003021257.NAA00259@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00033.html
Content-length: 1236

   Date: Thu, 02 Mar 2000 13:41:58 +0100
   From: Pierre Muller <muller@cerbere.u-strasbg.fr>

      I want to format my PATCH for pascal extension before submitting it 
   so I read that I should use GNU indent with -gnu option !

Hi Pierre, I do hope that you'll break your patch up in some smaller
chunks.  IMHO the fact that you sent it as a large chunk, was one of
the main reasons why it was ignored last fall.  

     But I tried this on c-lang.h just to see
   and the result is that the current header file does not conform to 
   indent output !

Looks like you're using a different `indent' than was used on the GDB
sources.  I think, this shows that defining the GDB coding standards
in terms of the output of `indent' is not really workable.  I've also
noticed that `indent' sometime really messes up the output, because it
gets confused by certain constructs.

     So my question is simply should I run indent on my files
   or should I send them without !

I'd say that avoiding gratuitous reformatting is more important than
running your changes through `indent'.  Thus, make sure that your
patches only contains changes for code you really changed, and that
these changes correspond to the GNU coding standards.

Mark
From muller@cerbere.u-strasbg.fr Thu Mar 02 05:33:00 2000
From: Pierre Muller <muller@cerbere.u-strasbg.fr>
To: Mark Kettenis <kettenis@wins.uva.nl>
Cc: gdb@sourceware.cygnus.com
Subject: Pascal language support patch preparation
Date: Thu, 02 Mar 2000 05:33:00 -0000
Message-id: <200003021347.OAA01051@cerbere.u-strasbg.fr>
References: <200003021257.NAA00259@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00035.html
Content-length: 2092

At 14:21 02/03/00 +0100, you wrote:
>   Date: Thu, 02 Mar 2000 13:41:58 +0100
>   From: Pierre Muller <muller@cerbere.u-strasbg.fr>
>
>      I want to format my PATCH for pascal extension before submitting it 
>   so I read that I should use GNU indent with -gnu option !
>
>Hi Pierre, I do hope that you'll break your patch up in some smaller
>chunks.  IMHO the fact that you sent it as a large chunk, was one of
>the main reasons why it was ignored last fall.  

  But adding a new language means at least :
new files :
  p-lang.h p-lang.c p-valprint.c p-typeprint.c and p-exp.y
plus the changes needed to make GDB know about pascal language !
This means a bunch of other changes of course !

>     But I tried this on c-lang.h just to see
>   and the result is that the current header file does not conform to 
>   indent output !
>
>Looks like you're using a different `indent' than was used on the GDB
>sources.  I think, this shows that defining the GDB coding standards
>in terms of the output of `indent' is not really workable.  I've also
>noticed that `indent' sometime really messes up the output, because it
>gets confused by certain constructs.

indent --version gives "GNU indent 2.2.5"
is that not the current version ??

>     So my question is simply should I run indent on my files
>   or should I send them without !
>
>I'd say that avoiding gratuitous reformatting is more important than
>running your changes through `indent'.  Thus, make sure that your
>patches only contains changes for code you really changed, and that
>these changes correspond to the GNU coding standards.

  One of the main problem is that my patches are primarily 
files c-*.* first copied to p-*.* then adapted to reflect pascal instead of C,
but of course this copy was primarily done on v4.17 !
I change after so that it compiled with v4.18, but
all the changes  made in c-*.* since then are not in my pascal files.



Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller@ics.u-strasbg.fr
Phone : (33)-3-88-41-40-07  Fax : (33)-3-88-41-40-99
From kettenis@wins.uva.nl Thu Mar 02 06:06:00 2000
From: Mark Kettenis <kettenis@wins.uva.nl>
To: muller@cerbere.u-strasbg.fr
Cc: gdb@sourceware.cygnus.com
Subject: Re: Pascal language support patch preparation
Date: Thu, 02 Mar 2000 06:06:00 -0000
Message-id: <200003021406.e22E6Rm00677@delius.kettenis.local>
References: <200003021257.NAA00259@cerbere.u-strasbg.fr> <200003021347.OAA01051@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00036.html
Content-length: 3028

   X-Sender: muller@ics.u-strasbg.fr
   Date: Thu, 02 Mar 2000 14:32:02 +0100
   From: Pierre Muller <muller@cerbere.u-strasbg.fr>
   Cc: gdb@sourceware.cygnus.com
   Content-Type: text/plain; charset="us-ascii"

   At 14:21 02/03/00 +0100, you wrote:
   >   Date: Thu, 02 Mar 2000 13:41:58 +0100
   >   From: Pierre Muller <muller@cerbere.u-strasbg.fr>
   >
   >      I want to format my PATCH for pascal extension before submitting it 
   >   so I read that I should use GNU indent with -gnu option !
   >
   >Hi Pierre, I do hope that you'll break your patch up in some smaller
   >chunks.  IMHO the fact that you sent it as a large chunk, was one of
   >the main reasons why it was ignored last fall.  

     But adding a new language means at least :
   new files :
     p-lang.h p-lang.c p-valprint.c p-typeprint.c and p-exp.y
   plus the changes needed to make GDB know about pascal language !
   This means a bunch of other changes of course !

Patches to create those new p-* files cannot be broken up of course,
but your patch also touches a lot of the other GDB files.  Breaking
those patches up in smaller though functionally related chunks makes
reviewing and applying the patches a lot easier.

I'd advise you to do the following:

1. If you need some tweaks in GDB that do not depend on the Pascal
   support itself, start submitting these ASAP.

2. Then send the new p-* as one single patch.

3. Then send a patch that adds the code to hook in the GDB support.

   >     But I tried this on c-lang.h just to see
   >   and the result is that the current header file does not conform to 
   >   indent output !
   >
   >Looks like you're using a different `indent' than was used on the GDB
   >sources.  I think, this shows that defining the GDB coding standards
   >in terms of the output of `indent' is not really workable.  I've also
   >noticed that `indent' sometime really messes up the output, because it
   >gets confused by certain constructs.

   indent --version gives "GNU indent 2.2.5"
   is that not the current version ??

Yes it is, but it isn't the version that was used for reformatting the
GDB sources.  See:

   http://sourceware.cygnus.com/ml/gdb/1999-q3/msg00014.html

for more information.

   >     So my question is simply should I run indent on my files
   >   or should I send them without !
   >
   >I'd say that avoiding gratuitous reformatting is more important than
   >running your changes through `indent'.  Thus, make sure that your
   >patches only contains changes for code you really changed, and that
   >these changes correspond to the GNU coding standards.

     One of the main problem is that my patches are primarily files
   c-*.* first copied to p-*.* then adapted to reflect pascal instead
   of C, but of course this copy was primarily done on v4.17 !  I
   change after so that it compiled with v4.18, but all the changes
   made in c-*.* since then are not in my pascal files.

The best thing would probably be to port these changes over to the
p-*.* files.

Mark
From muller@cerbere.u-strasbg.fr Thu Mar 02 06:17:00 2000
From: Pierre Muller <muller@cerbere.u-strasbg.fr>
To: Mark Kettenis <kettenis@wins.uva.nl>
Cc: gdb@sourceware.cygnus.com
Subject: Re: Pascal language support patch preparation
Date: Thu, 02 Mar 2000 06:17:00 -0000
Message-id: <200003021432.PAA01976@cerbere.u-strasbg.fr>
References: <200003021347.OAA01051@cerbere.u-strasbg.fr> <200003021257.NAA00259@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00037.html
Content-length: 4046

At 15:06 02/03/00 +0100, you wrote:
>   X-Sender: muller@ics.u-strasbg.fr
>   Date: Thu, 02 Mar 2000 14:32:02 +0100
>   From: Pierre Muller <muller@cerbere.u-strasbg.fr>
>   Cc: gdb@sourceware.cygnus.com
>   Content-Type: text/plain; charset="us-ascii"
>
>   At 14:21 02/03/00 +0100, you wrote:
>   >   Date: Thu, 02 Mar 2000 13:41:58 +0100
>   >   From: Pierre Muller <muller@cerbere.u-strasbg.fr>
>   >
>   >      I want to format my PATCH for pascal extension before submitting
it 
>   >   so I read that I should use GNU indent with -gnu option !
>   >
>   >Hi Pierre, I do hope that you'll break your patch up in some smaller
>   >chunks.  IMHO the fact that you sent it as a large chunk, was one of
>   >the main reasons why it was ignored last fall.  
>
>     But adding a new language means at least :
>   new files :
>     p-lang.h p-lang.c p-valprint.c p-typeprint.c and p-exp.y
>   plus the changes needed to make GDB know about pascal language !
>   This means a bunch of other changes of course !
>
>Patches to create those new p-* files cannot be broken up of course,
>but your patch also touches a lot of the other GDB files.  Breaking
>those patches up in smaller though functionally related chunks makes
>reviewing and applying the patches a lot easier.
>
>I'd advise you to do the following:
>
>1. If you need some tweaks in GDB that do not depend on the Pascal
>   support itself, start submitting these ASAP.

  I don't think I really have such code !

>2. Then send the new p-* as one single patch.

 Alone ? tihs would just leave them  unused first !

>3. Then send a patch that adds the code to hook in the GDB support.
  
 OK, here a would have the biggest part of the problems probably
because some of the change are not trivial but I agree that I can probably
splitt those.

  For instance a big problem on which I spent a lot of time is to 
get GDB to accept the fact the pascal is case insensitive
this required changes in gnu-regex code !!

 
>   >     But I tried this on c-lang.h just to see
>   >   and the result is that the current header file does not conform to 
>   >   indent output !
>   >
>   >Looks like you're using a different `indent' than was used on the GDB
>   >sources.  I think, this shows that defining the GDB coding standards
>   >in terms of the output of `indent' is not really workable.  I've also
>   >noticed that `indent' sometime really messes up the output, because it
>   >gets confused by certain constructs.
>
>   indent --version gives "GNU indent 2.2.5"
>   is that not the current version ??
>
>Yes it is, but it isn't the version that was used for reformatting the
>GDB sources.  See:
>
>   http://sourceware.cygnus.com/ml/gdb/1999-q3/msg00014.html

 This not really very informative on the method that was used to do it !


>for more information.
>
>   >     So my question is simply should I run indent on my files
>   >   or should I send them without !
>   >
>   >I'd say that avoiding gratuitous reformatting is more important than
>   >running your changes through `indent'.  Thus, make sure that your
>   >patches only contains changes for code you really changed, and that
>   >these changes correspond to the GNU coding standards.
>
>     One of the main problem is that my patches are primarily files
>   c-*.* first copied to p-*.* then adapted to reflect pascal instead
>   of C, but of course this copy was primarily done on v4.17 !  I
>   change after so that it compiled with v4.18, but all the changes
>   made in c-*.* since then are not in my pascal files.
>
>The best thing would probably be to port these changes over to the
>p-*.* files.

   Of courseit would, but I would like to stress again that I am a 
pascal programmer (a bit assembler also) but that I learned C only to be
able to
add pascal to GDB!!!
  
  So I am probably not the best person to do this without errors :(



Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller@ics.u-strasbg.fr
Phone : (33)-3-88-41-40-07  Fax : (33)-3-88-41-40-99
From muller@cerbere.u-strasbg.fr Thu Mar 02 06:38:00 2000
From: Pierre Muller <muller@cerbere.u-strasbg.fr>
To: Mark Kettenis <kettenis@wins.uva.nl>
Cc: gdb@sourceware.cygnus.com
Subject: Re: Pascal language support patch preparation
Date: Thu, 02 Mar 2000 06:38:00 -0000
Message-id: <200003021452.PAA02334@cerbere.u-strasbg.fr>
References: <200003021347.OAA01051@cerbere.u-strasbg.fr> <200003021257.NAA00259@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00038.html
Content-length: 817

>>The best thing would probably be to port these changes over to the
>>p-*.* files.
>
>   Of courseit would, but I would like to stress again that I am a 
>pascal programmer (a bit assembler also) but that I learned C only to be
>able to
>add pascal to GDB!!!
>  
>  So I am probably not the best person to do this without errors :(

   I just tried to get the diffs to see how difficult this would be:

  the diffs are mainly due to the reformating thus it is very difficult to
find out where 
the code really did change!!

  The logs are also useless as most only are weekly imports from the
workers CVS 
before the CVS was made public!



Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller@ics.u-strasbg.fr
Phone : (33)-3-88-41-40-07  Fax : (33)-3-88-41-40-99
From kingdon@redhat.com Thu Mar 02 06:46:00 2000
From: Jim Kingdon <kingdon@redhat.com>
To: ac131313@cygnus.com
Cc: gdb@sourceware.cygnus.com
Subject: Re: [MAINT/RFC] Start devolving maintenance responsibility
Date: Thu, 02 Mar 2000 06:46:00 -0000
Message-id: <200003021446.JAA31093@devserv.devel.redhat.com>
References: <38BC81A0.17D25C8@cygnus.com> <bbt4y3s8k.fsf@rtl.cygnus.com> <38BE146B.46ED6E4D@cygnus.com>
X-SW-Source: 2000-03/msg00039.html
Content-length: 1325

> Sorry, devolve, as a word, is probably more meaningful to people from
> Commonwealth countries.

I'm familiar with the word (e.g. Scotland) but at least for me it has
all these connotations of national sovereignty and power and such.
For example, it is a dead end to assume that an OS vendor should
automatically maintain GDB on that OS because they "own" the platform
or something.

> The underlying concern I have isn't with people like you that have been
> hacking on open code for years, its with people familar with GDB but not
> so familar with open source.  For that reason, I think it is useful to
> spell out, in basic terms, how the system should work.

Maybe link to The Cathedral and the Bazaar (which is well known) and
Alan Cox's Town Council paper (which deserves to be better known and
is at http://slashdot.org/features/98/10/13/1423253.shtml )?  I was
just showing the Town Council paper to someone in a GDB context and it
seemed to resonate.

I'm sure the looseness of this approach will make some people nervous.
But you can't build trust through rules and policies either.  What is
going to turn GDB development into the (more) vibrant community we
want it to be is delivering on the promises to add maintainers and
otherwise open up.  We've made great progress in the last month and
let's keep it up.
From ac131313@cygnus.com Thu Mar 02 06:47:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: Pierre Muller <muller@cerbere.u-strasbg.fr>
Cc: Mark Kettenis <kettenis@wins.uva.nl>, gdb@sourceware.cygnus.com
Subject: Re: Pascal language support patch preparation
Date: Thu, 02 Mar 2000 06:47:00 -0000
Message-id: <38BE7E80.4DA49303@cygnus.com>
References: <200003021347.OAA01051@cerbere.u-strasbg.fr> <200003021257.NAA00259@cerbere.u-strasbg.fr> <200003021452.PAA02334@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00040.html
Content-length: 902

Pierre Muller wrote:
> 
> >>The best thing would probably be to port these changes over to the
> >>p-*.* files.
> >
> >   Of courseit would, but I would like to stress again that I am a
> >pascal programmer (a bit assembler also) but that I learned C only to be
> >able to
> >add pascal to GDB!!!
> >
> >  So I am probably not the best person to do this without errors :(
> 
>    I just tried to get the diffs to see how difficult this would be:
> 
>   the diffs are mainly due to the reformating thus it is very difficult to
> find out where
> the code really did change!!
> 
>   The logs are also useless as most only are weekly imports from the
> workers CVS
> before the CVS was made public!

Try putting copies of the old and the new file through the same
indentation program and then comparing them.
It will flush out the indentation changes leaving you with just code
changes.

	enjoy,
		Andrew
From eliz@delorie.com Thu Mar 02 06:51:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: Pierre Muller <muller@cerbere.u-strasbg.fr>
Cc: Mark Kettenis <kettenis@wins.uva.nl>, gdb@sourceware.cygnus.com
Subject: Re: Pascal language support patch preparation
Date: Thu, 02 Mar 2000 06:51:00 -0000
Message-id: <200003021451.JAA05553@indy.delorie.com>
References: <200003021452.PAA02334@cerbere.u-strasbg.fr> <200003021257.NAA00259@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00041.html
Content-length: 431

>  the diffs are mainly due to the reformating thus it is very difficult to
>  find out where the code really did change!!

Use "diff -cbBw", and you will see mostly real code changes.

But do NOT send diffs generated by "diff -cbBw", as they will most
probably fail to apply.  Instead, after you have seen what/where are
the real code changes, and copied them to the p-*.* files, make the
diffs with the normal "diff -c" command.
From kettenis@wins.uva.nl Thu Mar 02 07:02:00 2000
From: Mark Kettenis <kettenis@wins.uva.nl>
To: muller@cerbere.u-strasbg.fr
Cc: gdb@sourceware.cygnus.com
Subject: Re: Pascal language support patch preparation
Date: Thu, 02 Mar 2000 07:02:00 -0000
Message-id: <200003021502.e22F2fk07660@delius.kettenis.local>
References: <200003021347.OAA01051@cerbere.u-strasbg.fr> <200003021257.NAA00259@cerbere.u-strasbg.fr> <200003021432.PAA01976@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00042.html
Content-length: 2650

   Date: Thu, 02 Mar 2000 15:16:19 +0100
   From: Pierre Muller <muller@cerbere.u-strasbg.fr>

   >Patches to create those new p-* files cannot be broken up of course,
   >but your patch also touches a lot of the other GDB files.  Breaking
   >those patches up in smaller though functionally related chunks makes
   >reviewing and applying the patches a lot easier.
   >
   >I'd advise you to do the following:
   >
   >1. If you need some tweaks in GDB that do not depend on the Pascal
   >   support itself, start submitting these ASAP.

     I don't think I really have such code !

Are you sure?  The patch I downloaded last fall includes changes to
breakpoint.c, findvar.c, i387-tdep.c, infcmd.c and source.c that seem
to be pretty independent of Pascal at first glance.

   >2. Then send the new p-* as one single patch.

    Alone ? tihs would just leave them  unused first !

That's not a problem.  The point is that these changes cannot break
anything, so they don't need a lot of attention.

   >3. Then send a patch that adds the code to hook in the GDB support.

    OK, here a would have the biggest part of the problems probably
   because some of the change are not trivial but I agree that I can probably
   splitt those.

That would indeed be best, since that lets the maintainer of that
particular part of GDB deal with problems one at a time, which in
general gets the changes integrated much quicker.

     For instance a big problem on which I spent a lot of time is to 
   get GDB to accept the fact the pascal is case insensitive
   this required changes in gnu-regex code !!

I'm sorry to hear that you spent a lot of time on it.  Modifying the
regex code is something that we should only do as a last resort since
it is shared with a lot of other GNU packages.  Maybe GDB should use
the POSIX functions instead of the BSD functions such that REG_ICASE
can be used when the default language is Pascal.

On the bright side: Case insensitivity would be convenient, but should
not be essential for basic Pascal support in GDB.  We should be able
to address this as a seperate issue.  I'll see what I can do.  For now
it is probably better to leave out this bit when you send your new
patches.

   >   indent --version gives "GNU indent 2.2.5"
   >   is that not the current version ??
   >
   >Yes it is, but it isn't the version that was used for reformatting the
   >GDB sources.  See:
   >
   >   http://sourceware.cygnus.com/ml/gdb/1999-q3/msg00014.html

    This not really very informative on the method that was used to do it !

Pardon me?  It clearly states that:  ``[Stan] used indent 1.9.1 (with
no arguments)''.

Mark
From kettenis@wins.uva.nl Thu Mar 02 07:08:00 2000
From: Mark Kettenis <kettenis@wins.uva.nl>
To: muller@cerbere.u-strasbg.fr
Cc: gdb@sourceware.cygnus.com
Subject: Re: Pascal language support patch preparation
Date: Thu, 02 Mar 2000 07:08:00 -0000
Message-id: <200003021508.e22F8og07862@delius.kettenis.local>
References: <200003021347.OAA01051@cerbere.u-strasbg.fr> <200003021257.NAA00259@cerbere.u-strasbg.fr> <200003021452.PAA02334@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00043.html
Content-length: 521

   Date: Thu, 02 Mar 2000 15:36:54 +0100
   From: Pierre Muller <muller@cerbere.u-strasbg.fr>

     The logs are also useless as most only are weekly imports from the
   workers CVS 
   before the CVS was made public!

Looks like we need to teach you the concept of ChangeLogs :-).  Take a
look at the files named ChangeLog* in the GDB source directory of your
checked out sources.  They list all the changes made to the sources
over the years.

Preferably you would include ChangeLog entries with you patches too.

Mark
From muller@cerbere.u-strasbg.fr Thu Mar 02 07:59:00 2000
From: Pierre Muller <muller@cerbere.u-strasbg.fr>
To: Mark Kettenis <kettenis@wins.uva.nl>
Cc: gdb@sourceware.cygnus.com
Subject: Re: Pascal language support patch preparation
Date: Thu, 02 Mar 2000 07:59:00 -0000
Message-id: <200003021613.RAA03663@cerbere.u-strasbg.fr>
References: <200003021432.PAA01976@cerbere.u-strasbg.fr> <200003021347.OAA01051@cerbere.u-strasbg.fr> <200003021257.NAA00259@cerbere.u-strasbg.fr>
X-SW-Source: 2000-03/msg00044.html
Content-length: 3955

At 16:02 02/03/00 +0100, you wrote:
>   Date: Thu, 02 Mar 2000 15:16:19 +0100
>   From: Pierre Muller <muller@cerbere.u-strasbg.fr>
>
>   >Patches to create those new p-* files cannot be broken up of course,
>   >but your patch also touches a lot of the other GDB files.  Breaking
>   >those patches up in smaller though functionally related chunks makes
>   >reviewing and applying the patches a lot easier.
>   >
>   >I'd advise you to do the following:
>   >
>   >1. If you need some tweaks in GDB that do not depend on the Pascal
>   >   support itself, start submitting these ASAP.
>
>     I don't think I really have such code !
>
>Are you sure?  The patch I downloaded last fall includes changes to
>breakpoint.c, findvar.c, i387-tdep.c, infcmd.c and source.c that seem
>to be pretty independent of Pascal at first glance.
   Most are obsolete now !

>   >2. Then send the new p-* as one single patch.
>
>    Alone ? tihs would just leave them  unused first !
>
>That's not a problem.  The point is that these changes cannot break
>anything, so they don't need a lot of attention.
>
>   >3. Then send a patch that adds the code to hook in the GDB support.
>
>    OK, here a would have the biggest part of the problems probably
>   because some of the change are not trivial but I agree that I can probably
>   splitt those.
>
>That would indeed be best, since that lets the maintainer of that
>particular part of GDB deal with problems one at a time, which in
>general gets the changes integrated much quicker.
>

  This reminds me that I have one other patch which is quite smaller but
that is limited to DJGPP target for now.
 It allows to read memory from another selector
this was very usefull for me when I tried to debug the debugger itself and 
when I added exception support fro GDB on DJGPP !

This patch consists of the addition of one command that I called "xx"
which is a simple clone of the "x" command but can take a selector 
as for intance 
   "xx $fs:0x400"
then the next "xx 0x800" keeps using the last selector value.
I do not know if this could be interesting for other i386 targets
(maybe for win32 to be able to see the content of the $fs selector
that contains the exception chain, but I am not sure how if its
readable inside a win32 API program).
  Is such kind of patch too specific to have any chance to get accepted ?
I don't know if it could be of any use for other processors!!


>     For instance a big problem on which I spent a lot of time is to 
>   get GDB to accept the fact the pascal is case insensitive
>   this required changes in gnu-regex code !!
>
>I'm sorry to hear that you spent a lot of time on it.  Modifying the
>regex code is something that we should only do as a last resort since
>it is shared with a lot of other GNU packages.  Maybe GDB should use
>the POSIX functions instead of the BSD functions such that REG_ICASE
>can be used when the default language is Pascal.

  I would also prefer a simpler approach because that code
is quite ugly in my opinion!

>On the bright side: Case insensitivity would be convenient, but should
>not be essential for basic Pascal support in GDB.  We should be able
>to address this as a seperate issue.  I'll see what I can do.  For now
>it is probably better to leave out this bit when you send your new
>patches.

  Anyhow I agree that this can and should be done later.

>   >Yes it is, but it isn't the version that was used for reformatting the
>   >GDB sources.  See:
>   >
>   >   http://sourceware.cygnus.com/ml/gdb/1999-q3/msg00014.html
>
>    This not really very informative on the method that was used to do it !
>
>Pardon me?  It clearly states that:  ``[Stan] used indent 1.9.1 (with
>no arguments)''.
  Sorry, I didn't read the message carefully enough it seems :(



Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller@ics.u-strasbg.fr
Phone : (33)-3-88-41-40-07  Fax : (33)-3-88-41-40-99
From broeker@physik.rwth-aachen.de Thu Mar 02 08:00:00 2000
From: Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
To: gdb@sourceware.cygnus.com
Cc: Eli Zaretskii <eliz@is.elta.co.il>
Subject: Re: Regressions problem (200 failures)
Date: Thu, 02 Mar 2000 08:00:00 -0000
Message-id: <Pine.LNX.4.10.10003021658190.11752-100000@acp3bf>
X-SW-Source: 2000-03/msg00045.html
Content-length: 2592

This is an answer to < 20000301123337B.mitchell@codesourcery.com >

[I've been pointed to this discussion by Eli Zaretskii, but I'm not on the
gdb mailing list, myself. I just read through it on the WWW archive. So
please, if you answer, Cc: to me, if possible. Thank you.]

The point raised in this discussion has, by coincidence, caused a similar
problem, with the DJGPP release version of GCC 2.95.2 and GDB 4.18. The
problem is that for very short functions (one, maybe two lines of actual
code, between the braces), gdb would not stop *at all* if you 'step' into
a function from outside, because of badly positioned line number debug
symbols.

Looking at the assembly generated by GCC, it turned out that the problem
lies in the way the function prologues and epilogues were written,
compared to earlier GCC releases. So, to answer one of the questions
raised in your discussion: to some extent, the prologue/epilogue have
indeed changed, since 1994. The whole method of outputting prologues has
been changed, since gcc-2.8.1, it seems, even though the typical set of
machine operations has stayed the same, for this platform. Originally,
prologues and epilogues were generated directly as assembly, by a
specialized function, i.e. they were not subject to RTL transformations.
Now, by default at least, they're generated as RTL, rather early in the
compilation, and subject to modification along with the 'real code'.

As to the question where the first line number label ought to be put, and
what line it should point, I think the behaviour of previous GCC/GDB
combinations was perfectly sane: the line number opcode is output right
after the prologue, and it points to the line the next machine instruction
originated from (initialization of an automatic variable, if present, an
executable statement otherwise). 

Opposed to this expected behaviour, gcc-2.95.2 outputs a line note
*before* the prologue (and one for the closing brace after the epilogue,
instead of before it, as it used to be). By disabling the RTL-style
prologue generating mechanism (undocumented GCC option
-mno-schedule-prologue), you get back the traditional behaviour.

Currently, the conclusion of discussion between me and Eli is that this
constitutes a bug in gcc-2.95.2. Wether or not that's still present in the
current snapshot remains to be checked. AFAICS, the GCC patch from Mark
Mitchell that caused all this hassle for your GDB testsuite meant to fix
that, but didn't work out as planned.

Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
Even if all the snow were burnt, ashes would remain.



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

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

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-04-01  0:00 Regressions problem (200 failures) Hans-Bernhard Broeker
     [not found] <200003021010.LAA13693@reisser.regent.e-technik.tu-muenchen.de>
     [not found] ` <20000302023420H.mitchell@codesourcery.com>
     [not found]   ` <200003021143.MAA14294@reisser.regent.e-technik.tu-muenchen.de>
2000-03-02  8:56     ` Mark Mitchell
     [not found]   ` <200003021246.e22CkWL00549@delius.kettenis.local>
2000-04-01  0:00     ` Mark Mitchell
2000-04-01  0:00     ` Peter.Schauer
  -- strict thread matches above, loose matches on Subject: below --
2000-03-01  9:49 Donn Terry
2000-04-01  0:00 ` Donn Terry
     [not found] ` <20000301123337B.mitchell@codesourcery.com>
2000-04-01  0:00   ` Jim Kingdon

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