Mailinglist Archive: opensuse-programming (16 mails)
| < Previous | Next > |
Re: [opensuse-programming] threads and core files
- From: Anders Johansson <ajohansson@xxxxxxx>
- Date: Wed, 30 May 2012 10:06:31 +0200
- Message-id: <4FC5D507.9090900@suse.de>
On 05/30/2012 09:39 AM, Roger Oberholtzer wrote:
It will be of the whole process, all threads. You can do for example
thread apply all bt
to get a backtrace of all threads in the process
By default if you only run "bt" gdb will try to show you the backtrace of the thread that caused the segfault
If a thread segfaults, the whole process dies, threads and all. If you want threads to run independent of each other, you need to start them as processes, not threads
Anders
--
To unsubscribe, e-mail: opensuse-programming+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-programming+owner@xxxxxxxxxxxx
I have a threaded application that encounters a segmentation violation.
I am fairly certain it is the initial thread that encounters the
problem. But I just want to be sure of the following:
1. If a multi-threaded app encounters a seg violation, and a core dump
is created, the core is of the thread that encountered the seg
violation, and not of the main thread, right?
It will be of the whole process, all threads. You can do for example
thread apply all bt
to get a backtrace of all threads in the process
By default if you only run "bt" gdb will try to show you the backtrace of the thread that caused the segfault
2. If a process starts a thread, and that thread exits, the process does
not know about this until it tries to join the thread, right? So, if a
thread has a seg violation and exits, the 'parent' thread will also not
be made exit. It has to detect the thread is gone by it's own mechanisms
or by trying to join the thread. I ask this because I want to be certain
I am not misinterpreting which thread in my application is the one that
really is getting the seg violation.
If a thread segfaults, the whole process dies, threads and all. If you want threads to run independent of each other, you need to start them as processes, not threads
Anders
--
To unsubscribe, e-mail: opensuse-programming+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-programming+owner@xxxxxxxxxxxx
| < Previous | Next > |