This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH with testcase] Bug 11568 - delete thread-specific breakpoint on the thread exit
- From: Pedro Alves <palves at redhat dot com>
- To: Muhammad Waqas <mwaqas at codesourcery dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Mon, 02 Sep 2013 11:24:26 +0100
- Subject: Re: [PATCH with testcase] Bug 11568 - delete thread-specific breakpoint on the thread exit
- Authentication-results: sourceware.org; auth=none
- References: <521CF7D0 dot 5040801 at redhat dot com> <1377692710-2885-1-git-send-email-mwaqas at codesourcery dot com> <5220C80D dot 5030502 at redhat dot com> <52240E9A dot 4030708 at codesourcery dot com> <52244EBE dot 1080107 at redhat dot com> <52245E5D dot 2030806 at codesourcery dot com>
On 09/02/2013 10:46 AM, Muhammad Waqas wrote:
> On 09/02/2013 01:39 PM, Pedro Alves wrote:
>> Hmm. I'm guessing the difference will be you don't have debug
>> info for you glibc. Could you do
>>
>> do make check RUNTESTFLAGS="thread-specific-bp.exp"
>>
>> and send the resulting gdb.log?
>
> find gdb.log in attachment.
Alright, thanks. That's indeed the difference:
Yours:
> (gdb) PASS: gdb.threads/thread-specific-bp.exp: All stop: continue to breakpoint: start> info threads
> Id Target Id Frame
> * 2 Thread 0x2aaaab4af700 (LWP 5815) "thread-specific" start (arg=0x0) at ../.././../gdb/gdb/testsuite/gdb.threads/thread-specific-bp.c:23
> 1 Thread 0x2aaaab2ad700 (LWP 5811) "thread-specific" 0x00002aaaaacd9148 in pthread_join () from /lib/x86_64-linux-gnu/libpthread.so.0
> (gdb) PASS: gdb.threads/thread-specific-bp.exp: All stop: thread created
Mine:
> (gdb) PASS: gdb.threads/thread-specific-bp.exp: All stop: continue to breakpoint: start
> info threads
> Id Target Id Frame
> * 2 Thread 0x7ffff7fca700 (LWP 16383) "thread-specific" start (arg=0x0) at ../../../src/gdb/testsuite/gdb.threads/thread-specific-bp.c:23
> 1 Thread 0x7ffff7fcb740 (LWP 16379) "thread-specific" 0x000000323dc08e60 in pthread_join (threadid=140737353918208, thread_return=0x0) at pthread_join.c:93
> (gdb) PASS: gdb.threads/thread-specific-bp.exp: All stop: thread created
I can tell because yours doesn't show the arguments to pthread_join.
So in your case the bug doesn't trigger because
set_current_sal_from_frame, called from print_stack_frame, does
nothing if the frame (in this case pthread_join's) doesn't have
a symtab:
void
set_current_sal_from_frame (struct frame_info *frame, int center)
{
struct symtab_and_line sal;
find_frame_sal (frame, &sal);
if (sal.symtab)
{
if (center)
sal.line = max (sal.line - get_lines_to_list () / 2, 1);
set_current_source_symtab_and_line (&sal);
}
}
--
Pedro Alves