Hello again, Martin:
I cannot reproduce this, either, so to debug this issue your help is
really appreciated.
Well, xscreensaver in demo mode or real (fullscreen) saver mode does *not*
draw hacks on "root window" as reported by "xwininfo -root", rather
xscreensaver creates a "virtual window" (as written on utils/vroot.h) and draw
hacks on the vroot. This information can be seen when you launch xscreensaver
daemon with "-verbose option" like:
xscreensaver: 20:37:16: 0: visual 0x21 (TrueColor, depth: 24, cmap: 256)
xscreensaver: 20:37:16: 0: saver window is 0x1e001ab.
<===========================
xscreensaver: 20:37:16: 0: destroyed old saver window 0x1e000aa.
xscreensaver: 20:37:16: 0: spawning "cwaves -root" in pid 16294.
Can you try below?
* launch xscreensaver like below from a terminal:
$ xscreensaver -verbose -log xscreensaver_output_log
* lock the screen by $ xscreensaver-command -lock
* switch to CUI with CTRL-ALT-F1 (for example: well GUI screen is now locked,
however I guess you can switch to CUI)
* login to VT
* gain the window id by watching the log xscreensaver is currently writing to
like
$ cat xscreensaver_output_log | grep window
* Now really gain the window information like
----------------------------------------------------------
$ env DISPLAY=:0.0 xwininfo 0x1e001ad
xwininfo: Window id: 0x1e001ad "Dali Clock"
Absolute upper-left X: 0
Absolute upper-left Y: 0
Relative upper-left X: 0
Relative upper-left Y: 0
Width: 1600
Height: 900
Depth: 24
Visual: 0x21
....
....
-------------------------------------------------------------
* Then try debugging "xscreensaver-getimage <root id> <root id> with gdb,
with setting break point on XPutImage and _XError, and getting backtrace
when xscreensaver-getimage reaches XPutImage or _XError function like:
--------------------------------------------------------------
$ gdb /usr/bin/xscreensaver-getimage
GNU gdb (GDB) Fedora (7.5.0.20120926-25.fc18)
......
......
Reading symbols from /usr/bin/xscreensaver-getimage...Reading symbols from
/usr/lib/debug/usr/bin/xscreensaver-getimage.debug...done.
done.
(gdb) set env DISPLAY=:0.0
(gdb) break XPutImage
Breakpoint 1 at 0x8049e20
(gdb) break _XError
(gdb) run 0x1e001ad 0x1e001ad
Starting program: /usr/bin/xscreensaver-getimage 0x1e001ad 0x1e001ad
....
....
----
Breakpoint 1, XPutImage (dpy=0x806b300, d=d@entry=31457709,
gc=gc@entry=0x807f470, image=0x8079898, req_xoffset=0,
req_yoffset=req_yoffset@entry=0, x=x@entry=200, y=y@entry=0,
req_width=req_width@entry=256, req_height=req_height@entry=64)
at PutImage.c:954
954 {
(gdb) bt full
.....
.....
(gdb) n
(gdb) whatis image
type = XImage *
(gdb) p *image
$2 = {width = 256, height = 64, xoffset = 0, format = 2, data = 0xb7f06008 "",
byte_order = 1, bitmap_unit = 32,
bitmap_bit_order = 1, bitmap_pad = 32, depth = 24, bytes_per_line = 1024,
bits_per_pixel = 32, red_mask = 16711680,
green_mask = 65280, blue_mask = 255, obdata = 0x0, f = {create_image =
0x41a52120 <XCreateImage>, destroy_image =
0x41a51510 <_XDestroyImage>, get_pixel = 0x41a52720 <_XGetPixel32>,
put_pixel = 0x41a52630 <_XPutPixel32>, sub_image =
0x41a52320 <_XSubImage>, add_pixel = 0x41a515e0 <_XAddPixel>}}
(gdb) cont
....
<Perhaps you hit _XError>
(gdb) bt full
----------------------------------------------------------
To get backtrace with gdb, you must use xscreensaver and GLib, GdkPixbuf
compiled with debug information.
Well, maybe even with the above information I cannot figure out where is the
problem, however
anyway your help is appreciated.
Regards,
Mamoru TASAKA
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]