This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA 2/2][master only] gdb/windows-nat.c: Get rid of main_thread_id global


> > If I understand you correctly, you want to preserve the global
> > so we can avoid those notifications. In my opinion, doing that
> > just for the purpose of filtering one notification is simply
> > not worth the trouble of keeping a global around.  Generally speaking,
> > we tend to try to avoid globals as much as we can, as they are hard to
> > track, and makes the code harder to understand and maintain.
> > Modifying the logic to use the main_thread_id global instead of
> > the kind of event is a step backwards, in my opinion.
> 
> If the only problem is having the global variable, we could mark the
> main thread in some other way, that won't need the global.
> 
> But yes, I think not announcing the main thread is a nice feature, and
> losing it due to the mess that happens at program exit (something to
> which most users won't pay attention anyway) would be a pity.  I'd
> even agree to announcing the exit of the main thread, if we cannot
> come up with a better solution, if that could allow us avoid its
> announcement at program startup.
> 
> The use case I have in mind is debugging a single-threaded program.
> It is jarring enough, when debugging such a program, to see GDB
> announcing threads started by the OS.  It would be nice if we could
> avoid announcing the main thread.

Personally, I feel the other way, especially since we always get
all sorts of random temporary thread notifications polutting the
output, that I don't mind the extra notification. And that way,
I know when each thread is actually terminated, and with what
error code.

But if you and others feel differently, I can switch my approach:

  - patch #1 (master+8.3): Just fix the crash, and nothing more.

        This means that, on 8.3, thread creation and exit notifications
        can be slightly off; this is considered an acceptable known
        problem, and is not a regression.

        This is actually what we've put in AdaCore's GDB as a first
        step to see we had any issue after that, and we did not.

  - patch #2 (master only): Remove uses of the global

        But we keep the filtering of the "main" thread. We still
        the known problem that the thread-exit notifications might
        be silenced for the wrong thread. Not a regression.

  - patch #3 (master only): Tag the main thread, and silence
    the thread-exit notification of the thread that got tagged.
    Depending on the implementation, this patch would potentially
    be acceptable for 8.3, but might need extra work to apply.
    I think we've had enough problems with 8.3 as it is, I don't
    want to add more things to do, so I vote OUT for 8.3.

I don't think I have time for that before the weekend or next week,
though.

-- 
Joel


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