This is the mail archive of the cygwin mailing list for the Cygwin 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: Pthreads and GDB?


Sorry, I forgot to build with the -g option.

But still as I'm stepping passed the 2 pthread_create() routines they
finish executing before I can set a break.  Why?

---Jan


On Tue, Jul 12, 2011 at 1:02 PM, Jan Chludzinski
<jan.chludzinski@gmail.com> wrote:
>> Since cygwin1.dll is multithreaded, I routinely set breakpoints which
>> are only hit in a thread. ?So, yes, gdb is supposed to be multi-thread
>> aware.
>
> I have a 2 thread program. ?I set the break for main() and run (to main):
>
> ? ? ?(gdb) b main
> ? ? ?Breakpoint 1 at 0x401191
> ? ? ?(gdb) r
> ? ? ?Starting program: /home/John/projects/pthreads/test1/a.exe
> ? ? ?[New thread 3680.0x13e8]
> ? ? ?Error: dll starting at 0x76ff0000 not found.
> ? ? ?Error: dll starting at 0x76590000 not found.
> ? ? ?Error: dll starting at 0x76ff0000 not found.
> ? ? ?Error: dll starting at 0x76c40000 not found.
> ? ? ?[New thread 3680.0xc7c]
> ? ? ?Breakpoint 1, 0x00401191 in main ()
>
> Wait a few seconds and start to step:
>
> ? ? ?(gdb) n
> ? ? ?Single stepping until exit from function main,
> ? ? ?which has no line number information.
> ? ? ?[New thread 3680.0x1410]
> ? ? ?[New thread 3680.0x1540]
> ? ? ?Counter value functionCount1: 1
> ? ? ?Counter value functionCount2: 2
> ? ? ?...
> ? ? ?Final count: 10
> ? ? ?Program exited normally.
>
> As you can see the threads have finished executing, along with the
> main thread, *before * I ever get a chance to step to the first
> pthread_create(). ?Let alone set a break in a thread.
>
> Why?
>
> Thanks, Jan
>
> On Tue, Jul 12, 2011 at 6:16 AM, Jan Chludzinski
> <jan.chludzinski@gmail.com> wrote:
>> I went to GNU.org to read about GDB and threads since I'm having
>> trouble working with ptheads under GDB on Cygwin. ?I notice this on
>> the GNU.org web site:
>>
>> "Warning: These facilities are not yet available on every GDB
>> configuration where the operating system supports threads. If your GDB
>> does not support threads, these commands have no effect. For example,
>> a system without thread support shows no output from `info threads',
>> and always rejects the thread command, like this:"
>>
>> What the level of support for threads with GDB under Cygwin?
>>
>> Switching between threads causes seg-faults. ?Also, I thought that
>> while you're stepping through one thread, the other threads weren't
>> running? Shouldn't I be able to set a breakpoint in a thread before
>> pthread_create() is invoked? ?Doesn't appear to be the case?
>>
>> ---Jan
>>
>

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


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