Hi, I refreshed Paul's patches to apply cleanly on HEAD. I did a test run and it still works as expected. -> (gdb) start (gdb) x/g &puts 0x400001dc1d8 : 0x00000400000e99b0 (gdb) x/10i 0x00000400000e99b0 + 80 0x400000e9a00 <._IO_puts+80>: beq- cr7,0x400000e9a3c <._IO_puts+140> 0x400000e9a04 <._IO_puts+84>: li r0,1 0x400000e9a08 <._IO_puts+88>: lwarx r11,0,r3 0x400000e9a0c <._IO_puts+92>: cmpw r11,r9 0x400000e9a10 <._IO_puts+96>: bne- 0x400000e9a1c <._IO_puts+108> 0x400000e9a14 <._IO_puts+100>: stwcx. r0,0,r3 0x400000e9a18 <._IO_puts+104>: bne+ 0x400000e9a08 <._IO_puts+88> 0x400000e9a1c <._IO_puts+108>: isync 0x400000e9a20 <._IO_puts+112>: cmpwi cr7,r11,0 0x400000e9a24 <._IO_puts+116>: bne- cr7,0x400000e9b84 <._IO_puts+468> (gdb) b *0x400000e9a04 Breakpoint 2 at 0x400000e9a04 (gdb) c Continuing. Breakpoint 2, 0x00000400000e9a04 in ._IO_puts () from /lib64/power5/libc.so.6 (gdb) si 0x00000400000e9a08 in ._IO_puts () from /lib64/power5/libc.so.6 (gdb) Stepping over an atomic sequence of instructions beginning at 0x00000400000e9a08 0x00000400000e9a18 in ._IO_puts () from /lib64/power5/libc.so.6 (gdb) x/5i 0x00000400000e9a08 0x400000e9a08 <._IO_puts+88>: lwarx r11,0,r3 0x400000e9a0c <._IO_puts+92>: cmpw r11,r9 0x400000e9a10 <._IO_puts+96>: bne- 0x400000e9a1c <._IO_puts+108> 0x400000e9a14 <._IO_puts+100>: stwcx. r0,0,r3 0x400000e9a18 <._IO_puts+104>: bne+ 0x400000e9a08 <._IO_puts+88> (gdb) <- Also, i haven't been able to reproduce the issue related at this post: (http://sourceware.org/ml/gdb-patches/2006-09/msg00060.html) This is the test run on my power machine. No Internal errors at this time. -> (gdb) start Breakpoint 1 at 0x10000674: file atomic.c, line 9. Starting program: /home/luis/binaries/atomic64 warning: Unable to find dynamic linker breakpoint function. GDB will be unable to debug shared library initializers and track explicitly loaded dynamic code. warning: Breakpoint address adjusted from 0x10010b58 to 0x100004f0. main (argc=1, argv=0xfffff8351e8 "") at atomic.c:9 9 printf("atomic_step_test\n"); (gdb) n atomic_step_test 10 atomic_set(&i,5); (gdb) 11 printf("i=%d\n",atomic_read(&i)); (gdb) i=5 12 atomic_dec(&i); (gdb) 13 printf("i=%d\n",atomic_read(&i)); (gdb) i=4 16 } (gdb) 0x00000400000a0c8c in .generic_start_main () from /lib64/power5/libc.so.6 (gdb) Single stepping until exit from function .generic_start_main, which has no line number information. 0x00000400000150f0 in ._dl_fini () from /lib64/ld64.so.1 (gdb) Single stepping until exit from function ._dl_fini, which has no line number information. Stepping over an atomic sequence of instructions beginning at 0x00000400000fa69c Stepping over an atomic sequence of instructions beginning at 0x00000400000fa820 Program exited with code 04. (gdb) <- Regards, Luis