This is the mail archive of the gdb-prs@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]

[Bug server/16168] Signal heavy execution + repeated breakpoint locks up gbserver


https://sourceware.org/bugzilla/show_bug.cgi?id=16168

--- Comment #4 from eclipsehivernale at sfr dot fr ---
I am a software developer of a multi threaded application (about 10 threads).
Recently we decided to use tcmalloc instead of the glibc malloc.
It is a google open source malloc optimized for multi allocation allocation.

Since this change, it is impossible to use gdbserver.
The SIGPROF signal management is automatic in tcmalloc library.
After a few "next" operation, gdbserver hangs, waiting for a pending event from
thread which has received a SIGPROF signal, exactly like you describe in your
comment.

It is still possible to use gdb directly on the remote target, but this is a
waste of time.
I also observed once gdb hanged in native configuration, but I can't tell for
sure it is the same issue as I just killed it and tried again.

I tested the patch you posted:
https://sourceware.org/ml/gdb-patches/2013-11/msg00361.html and it seems to
work fine on 7.8.50.20141107.

There are other freeze/hangs reported in the bug zilla database that may be
linked to this issue, since it can appear by using any running operation (next,
step, break...) and every gdb version so far are impacted.

I think more and more people will face this issue (tcmalloc + multi threaded
application without control on SIGPROF) and I would like to push to integrate a
fix in the next version of gdb.

Anyway thanks a lot to you for the investigation and the fix suggestion.
If no action is taken to fix gdb then I guess I will use your fix locally
forever.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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