I guess you mean screen->BlockHandler instead of pScreen->BlockHandler which isn't defined? After recompiling also the intel-driver with -O0 (with -O1, gdb eats 100% cpu when continuing after the watchpoint is set), the following results:
[root@utahraptor ~]# gdb X
GNU gdb (GDB) 7.4
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/X...done.
(gdb) break I830ScreenInit
Function "I830ScreenInit" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (I830ScreenInit) pending.
(gdb) run
Starting program: /usr/bin/X
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
X.Org X Server 1.12.0
Release Date: 2012-03-04
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.2.11-1-ARCH x86_64
Current Operating System: Linux utahraptor 3.2.11-1-ARCH #1 SMP PREEMPT Thu Mar 15 09:19:02 CET 2012 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux root=/dev/mapper/ssdvg-arch ro quiet
Build Date: 19 March 2012 10:45:43AM
Current version of pixman: 0.24.4
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Mon Mar 19 11:38:53 2012
(==) Using config directory: "/etc/X11/xorg.conf.d"
[tcsetpgrp failed in terminal_inferior: Die Operation ist nicht erlaubt]
Old value = (ScreenBlockHandlerProcPtr) 0
New value = (ScreenBlockHandlerProcPtr) 0x4352df <NoopDDA>
miScreenInit (pScreen=0x9d9aa0, pbits=0x0, xsize=<optimized out>, ysize=<optimized out>, dpix=<optimized out>, dpiy=<optimized out>, width=1920, rootDepth=24,
numDepths=7, depths=0x9d92e0, rootVisual=33, numVisuals=2, visuals=0x9d5e00) at miscrinit.c:267
267 pScreen->WakeupHandler = (ScreenWakeupHandlerProcPtr)NoopDDA;
(gdb) c
Continuing.
Hardware watchpoint 2: screen->BlockHandler
Old value = (ScreenBlockHandlerProcPtr) 0x4352df <NoopDDA>
New value = (ScreenBlockHandlerProcPtr) 0x4ab155 <xf86RotateBlockHandler>
0x00000000004ab9d7 in xf86CrtcRotate (crtc=0x9cfc90) at xf86Rotate.c:475
475 pScreen->BlockHandler = xf86RotateBlockHandler;
(gdb) c
Continuing.
Hardware watchpoint 2: screen->BlockHandler
Old value = (ScreenBlockHandlerProcPtr) 0x4ab155 <xf86RotateBlockHandler>
New value = (ScreenBlockHandlerProcPtr) 0x7fa066d73c1e <I830BlockHandler>
I830ScreenInit (scrnIndex=0, screen=0x9d9aa0, argc=1, argv=0x7fff084ed4a8) at intel_driver.c:1026
1026 if (!AddCallback(&FlushCallback, intel_flush_callback, scrn))
(gdb) c
Continuing.
Watchpoint 2 deleted because the program has left the block in
which its expression is valid.
0x0000000000431e27 in AddScreen (pfnInit=0x7fa066d741f6 <I830ScreenInit>, argc=1, argv=0x7fff084ed4a8) at dispatch.c:3909
3909 if (!(*pfnInit)(i, pScreen, argc, argv))
(gdb) c
Continuing.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Multiple interpretations of "Caps_Lock+AnyOfOrNone(all)"
> Using last definition for duplicate fields
> Warning: Multiple interpretations of "Shift_L+AnyOfOrNone(all)"
> Using last definition for duplicate fields
> Warning: Type "ONE_LEVEL" has 1 levels, but <LSGT> has 4 symbols
> Ignoring extra symbols
> Warning: Type "ONE_LEVEL" has 1 levels, but <BKSL> has 2 symbols
> Ignoring extra symbols
> Warning: Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
> Ignoring extra symbols
Errors from xkbcomp are not fatal to the X server
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb)
I guess you mean screen- >BlockHandler instead of pScreen- >BlockHandler which isn't defined? After recompiling also the intel-driver with -O0 (with -O1, gdb eats 100% cpu when continuing after the watchpoint is set), the following results:
[root@utahraptor ~]# gdb X gnu.org/ licenses/ gpl.html> unknown- linux-gnu" . www.gnu. org/software/ gdb/bugs/>... _db.so. 1".
GNU gdb (GDB) 7.4
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-
For bug reporting instructions, please see:
<http://
Reading symbols from /usr/bin/X...done.
(gdb) break I830ScreenInit
Function "I830ScreenInit" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (I830ScreenInit) pending.
(gdb) run
Starting program: /usr/bin/X
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread
X.Org X Server 1.12.0 /boot/vmlinuz- linux root=/dev/ mapper/ ssdvg-arch ro quiet
Release Date: 2012-03-04
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.2.11-1-ARCH x86_64
Current Operating System: Linux utahraptor 3.2.11-1-ARCH #1 SMP PREEMPT Thu Mar 15 09:19:02 CET 2012 x86_64
Kernel command line: BOOT_IMAGE=
Build Date: 19 March 2012 10:45:43AM
Current version of pixman: 0.24.4 wiki.x. org Xorg.0. log", Time: Mon Mar 19 11:38:53 2012 xorg.conf. d"
Before reporting problems, check http://
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/
(==) Using config directory: "/etc/X11/
[tcsetpgrp failed in terminal_inferior: Die Operation ist nicht erlaubt]
Breakpoint 1, I830ScreenInit (scrnIndex=0, screen=0x9d9aa0, argc=1, argv=0x7fff084e d4a8) at intel_driver.c:924 screen- >myNum] ; >BlockHandler >BlockHandler >BlockHandler
924 ScrnInfoPtr scrn = xf86Screens[
(gdb) watch screen-
Hardware watchpoint 2: screen-
(gdb) continue
Continuing.
Hardware watchpoint 2: screen-
Old value = (ScreenBlockHan dlerProcPtr) 0 dlerProcPtr) 0x4352df <NoopDDA> >WakeupHandler = (ScreenWakeupHa ndlerProcPtr) NoopDDA; >BlockHandler
New value = (ScreenBlockHan
miScreenInit (pScreen=0x9d9aa0, pbits=0x0, xsize=<optimized out>, ysize=<optimized out>, dpix=<optimized out>, dpiy=<optimized out>, width=1920, rootDepth=24,
numDepths=7, depths=0x9d92e0, rootVisual=33, numVisuals=2, visuals=0x9d5e00) at miscrinit.c:267
267 pScreen-
(gdb) c
Continuing.
Hardware watchpoint 2: screen-
Old value = (ScreenBlockHan dlerProcPtr) 0x4352df <NoopDDA> dlerProcPtr) 0x4ab155 <xf86RotateBloc kHandler> >BlockHandler = xf86RotateBlock Handler; >BlockHandler
New value = (ScreenBlockHan
0x00000000004ab9d7 in xf86CrtcRotate (crtc=0x9cfc90) at xf86Rotate.c:475
475 pScreen-
(gdb) c
Continuing.
Hardware watchpoint 2: screen-
Old value = (ScreenBlockHan dlerProcPtr) 0x4ab155 <xf86RotateBloc kHandler> dlerProcPtr) 0x7fa066d73c1e <I830BlockHandler> d4a8) at intel_driver.c:1026 &FlushCallback, intel_flush_ callback, scrn))
New value = (ScreenBlockHan
I830ScreenInit (scrnIndex=0, screen=0x9d9aa0, argc=1, argv=0x7fff084e
1026 if (!AddCallback(
(gdb) c
Continuing.
Watchpoint 2 deleted because the program has left the block in 0x7fa066d741f6 <I830ScreenInit>, argc=1, argv=0x7fff084e d4a8) at dispatch.c:3909 AnyOfOrNone( all)" L+AnyOfOrNone( all)"
which its expression is valid.
0x0000000000431e27 in AddScreen (pfnInit=
3909 if (!(*pfnInit)(i, pScreen, argc, argv))
(gdb) c
Continuing.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Multiple interpretations of "Caps_Lock+
> Using last definition for duplicate fields
> Warning: Multiple interpretations of "Shift_
> Using last definition for duplicate fields
> Warning: Type "ONE_LEVEL" has 1 levels, but <LSGT> has 4 symbols
> Ignoring extra symbols
> Warning: Type "ONE_LEVEL" has 1 levels, but <BKSL> has 2 symbols
> Ignoring extra symbols
> Warning: Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
> Ignoring extra symbols
Errors from xkbcomp are not fatal to the X server
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb)