On Tue, 2019-10-15 at 20:31 -0400, JeanHeyd Meneide wrote:
> Attached is a patch for p1301 that improves in the way Jason Merrill
> specified earlier
> (https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00858.html), but it
> keeps segfaulting on my build of GCC. I don't know what changes I've
> made that cause it to segfault: it does so whenever the error()
> function is called but the backtraces aren't showing me anything
> conclusive.
> 
> The tests test what I expect them to and the output is fine, I just
> can't get the segfaults to stop, so I'm putting the patch up so
> someone can critique what I've written, or someone else to test it
> too. Sorry for taking so long.
> 
> Thanks,
> JeanHeyd

Thanks for posting these patches.

I believe you're a new GCC contributor - welcome!

Having said "welcome", for good or ill, GCC has some legalese that we
have to follow - to get a patch accepted, see the "Legal Prerequisites"
section of: https://gcc.gnu.org/contribute.html so you'll need to
follow that at some point  (I hate having to say this).

I got the impression on IRC yesterday that you were having some trouble
getting your debugging environment set up - it sounded to me like
you've been "making do" by adding print statements to the parser and
recompiling each time.

If that's the case, then the best next step is probably to figure out
how to get you debugging cc1plus using a debugger.

Normally, I run:
  ./xgcc -B.
and add  "-wrapper gdb,--args" to the command line so that the driver
invokes gdb.

Another way is to invoke gdb and have it directly invoke cc1plus:
   gdb --args ./cc1plus -quiet x.C

In both cases, run it from <your-build-dir>/gcc

See also:
https://dmalcolm.fedorapeople.org/gcc/newbies-guide/debugging.html
which has further hints and info on a "nicer" debugging experience.

You mentioned that you normally use gdbserver, which makes me think
that you're most comfortable using gdb from an IDE.  I'm not very
familiar with gdbserver, but hopefully someone here knows the recipe
for this that will let you comfortably debug the frontend - without
needing to add print statements and recompile each time (ugh).

Note that for hacking on the frontend and debugging, I normally
configure gcc with --disable-bootstrap which saves a *lot* of time;
similarly I also only build the "gcc" subdirectory and its dependencies
(I still do a full bootstrap and regression test in a separate
directory once I've got a candidate patch that I want to test properly
before submitting to the mailing list).

[I know that you know some/all of this, but I'm posting it here for the
benefit of people reading the list archives]

Hope this is helpful, and welcome again.
Dave


Reply via email to