gdb 7.0.1 - non-stop and/or detach-on-fork not working

Nenad Vukicevic nenad@intrepid.com
Tue Dec 22 22:28:00 GMT 2009


Sorry for the mistake. I upgraded instead to the latest snapshot and 
everything is in
order.

Nenad

On 12/22/2009 1:06 PM, Nenad Vukicevic wrote:
> Has there been any change in this area since 7.0.50 12/02/09 snapshot?
>
> I am using these options:
>
> set target-async on
> set non-stop on
> set detach-on-fork off
>
> and have a simple app that forks two processes. 7.0.1 fails to break on
> already established breakpoints.
>
> Any idea what might went wrong?
>
> Nenad
>
> Here are the logs from 7.0.50 and 7.0.1 runs:
>
>
> ------------------------------------------------------------------------------- 
>
> gdb-7.0.50.20091202
>
> Breakpoint 1 at 0x4006c3: file t.c, line 55.
> Breakpoint 2 at 0x40062c: file t.c, line 11.
> Breakpoint 3 at 0x400653: file t.c, line 25.
> Breakpoint 4 at 0x4006af: file t.c, line 48.
> (gdb) r
> Starting program: /a/gdb-7.0.50.20091202/wrk/gdb/test/t
>
> Breakpoint 1, main () at t.c:55
> 55        int cnt = 0;
> (gdb) c
> Continuing.
> Start...
> [New process 5719]
> Created 5719
>
> Breakpoint 2, child_proc1 () at t.c:11
> 11        int cnt = 0;
> (gdb) [New process 5720]
> Created 5720
>
> Breakpoint 3, child_proc2 () at t.c:25
> 25        int cnt = 0;
>
> Breakpoint 4, main_proc () at t.c:48
> 48        sleep(1000);
> info threads
>   3 process 5720  child_proc2 () at t.c:25
>   2 process 5719  child_proc1 () at t.c:11
> * 1 process 5689  main_proc () at t.c:48
> (gdb) info breakpoints
> Num     Type           Disp Enb Address            What
> 1       breakpoint     keep y <MULTIPLE>
>         breakpoint already hit 1 time
> 1.1                         y     0x00000000004006c3 in main at t.c:55 
> inf 3
> 1.2                         y     0x00000000004006c3 in main at t.c:55 
> inf 2
> 1.3                         y     0x00000000004006c3 in main at t.c:55 
> inf 1
> 2       breakpoint     keep y <MULTIPLE>
>         breakpoint already hit 1 time
> 2.1                         y     0x000000000040062c in child_proc1 at 
> t.c:11 inf 3
> 2.2                         y     0x000000000040062c in child_proc1 at 
> t.c:11 inf 2
> 2.3                         y     0x000000000040062c in child_proc1 at 
> t.c:11 inf 1
> 3       breakpoint     keep y <MULTIPLE>
>         breakpoint already hit 1 time
> 3.1                         y     0x0000000000400653 in child_proc2 at 
> t.c:25 inf 3
> 3.2                         y     0x0000000000400653 in child_proc2 at 
> t.c:25 inf 2
> 3.3                         y     0x0000000000400653 in child_proc2 at 
> t.c:25 inf 1
> 4       breakpoint     keep y <MULTIPLE>
>         breakpoint already hit 1 time
> 4.1                         y     0x00000000004006af in main_proc at 
> t.c:48 inf 3
> 4.2                         y     0x00000000004006af in main_proc at 
> t.c:48 inf 2
> 4.3                         y     0x00000000004006af in main_proc at 
> t.c:48 inf
>
> ------------------------------------------------------------------------------ 
>
> gdb-7.0.1
>
> Breakpoint 1 at 0x4006c3: file t.c, line 55.
> Breakpoint 2 at 0x40062c: file t.c, line 11.
> Breakpoint 3 at 0x400653: file t.c, line 25.
> Breakpoint 4 at 0x4006af: file t.c, line 48.
> (gdb) r
> Starting program: /a/gdb-7.0.1/wrk/gdb/test/t
>
> Breakpoint 1, main () at t.c:55
> 55        int cnt = 0;
> (gdb) c&
> Continuing.
> (gdb) Start...
> [New process 10321]
> Created 10321
> [New process 10322]
> Created 10322
>
> Breakpoint 4, main_proc () at t.c:48
> 48        sleep(1000);
> info threads
>   3 process 10322  0x0000003db44a42d6 in fork () from /lib64/libc.so.6
>   2 process 10321  0x0000003db44a42d6 in fork () from /lib64/libc.so.6
> * 1 process 10291  main_proc () at t.c:48
> (gdb) info break
> Num     Type           Disp Enb Address            What
> 1       breakpoint     keep y   0x00000000004006c3 in main at t.c:55
>         breakpoint already hit 1 time
> 2       breakpoint     keep y   0x000000000040062c in child_proc1 at 
> t.c:11
> 3       breakpoint     keep y   0x0000000000400653 in child_proc2 at 
> t.c:25
> 4       breakpoint     keep y   0x00000000004006af in main_proc at t.c:48
>         breakpoint already hit 1 time
> (gdb) thread apply all c
>
> Thread 3 (process 10322):
> Continuing.
>
> Thread 2 (process 10321):
> Continuing.
>
> Thread 1 (process 10291):
> Continuing.
> ^C
> Program received signal SIGINT, Interrupt.
> 0x0000003db44a41b0 in __nanosleep_nocancel () from /lib64/libc.so.6
> (gdb)
> Program received signal SIGINT, Interrupt.
> 0x0000003db44a41b0 in __nanosleep_nocancel () from /lib64/libc.so.6
>
> Program received signal SIGINT, Interrupt.
> 0x0000003db44a41b0 in __nanosleep_nocancel () from /lib64/libc.so.6
> info thread
>   3 process 10322  0x0000003db44a41b0 in __nanosleep_nocancel () from 
> /lib64/libc.so.6
>   2 process 10321  0x0000003db44a41b0 in __nanosleep_nocancel () from 
> /lib64/libc.so.6
> * 1 process 10291  0x0000003db44a41b0 in __nanosleep_nocancel () from 
> /lib64/libc.so.6
> (gdb) info break
> Num     Type           Disp Enb Address            What
> 1       breakpoint     keep y   0x00000000004006c3 in main at t.c:55
>         breakpoint already hit 1 time
> 2       breakpoint     keep y   0x000000000040062c in child_proc1 at 
> t.c:11
> 3       breakpoint     keep y   0x0000000000400653 in child_proc2 at 
> t.c:25
> 4       breakpoint     keep y   0x00000000004006af in main_proc at t.c:48
>         breakpoint already hit 1 time
> (gdb)



More information about the Gdb mailing list