pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: gv does not open



Dear carsten,

carsten.kunze%arcor.de@localhost writes:
> I did deinstall gv and libXaw3d, then installed libXaw and gv.  But
> gv did install libXaw3d itself.  So it didn't help.
> 
> A comment in gv says:
> 
> "this pkg does not work with std xaw, but xpm and xaw3d work"
Can you try to build it with XAW_TYPE=xpm, please?

There was a problem that I've just fixed importing a patch from
upstream. There are some visual glitches with the buttons but the
situation is much better compared to gv built with XAW_TYPE=3d.

I've also tryed to investigate the original problem regarding the CPU
usage. The problematic call is at src/main.c:1112 and expanding
the macro the XtCreateWidget() seems to never return and instead will
cycle forever in CountTreeDepth().
It seems that each widget has a parent and the main widget should have
a NULL parent but this not happens for the titleButton widget
(XtCreateWidget() is also called several times before being not
problematic)!

Unfortunately the gv code is pretty complex for me and I wasn't able to
find the root cause of that. If anyone have some tips regarding how to
further debug it please let me know! Here a gdb session that give some
more details:
 
 $ gdb ./gv
 Copyright (C) 2015 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--netbsd".
 Type "show configuration" for configuration details.
 For bug reporting instructions, please see:
 <http://www.gnu.org/software/gdb/bugs/>.
 Find the GDB manual and other documentation resources online at:
 <http://www.gnu.org/software/gdb/documentation/>.
 For help, type "help".
 Type "apropos word" to search for commands related to "word"...
 Reading symbols from ./gv...done.
 (gdb) run
 Starting program: /usr/pkgsrc/print/gv/work/gv-3.7.4/src/gv
 Warning: Representation size 4 must match superclass's to override
 highlightedFrameStyle
 ^C
 Program received signal SIGINT, Interrupt.
 CountTreeDepth (w=<optimized out>) at
 /usr/xsrc/external/mit/libXt/dist/src/Resources.c:232
 232             count++;
 (gdb) display count
 1: count = 358491830
 (gdb) display w->core.name
 2: w->core.name = <error: value has been optimized out>
 (gdb) display w->core.parent
 3: w->core.parent = <error: value has been optimized out>
 (gdb) s
 231         for (count = 1; w != NULL; w = (Widget) w->core.parent)
 3: w->core.parent = (Widget) 0x7f7ff7b87670
 2: w->core.name = (String) 0x7f7ff7b7519d "titleButton"
 1: count = 358491831
 (gdb)
 CountTreeDepth (w=<optimized out>) at
 /usr/xsrc/external/mit/libXt/dist/src/Resources.c:232
 232             count++;
 3: w->core.parent = <error: value has been optimized out>
 2: w->core.name = <error: value has been optimized out>
 1: count = 358491831
 (gdb)
 231         for (count = 1; w != NULL; w = (Widget) w->core.parent)
 3: w->core.parent = (Widget) 0x7f7ff7b40800
 2: w->core.name = (String) 0x7f7ff7b75671 "control"
 1: count = 358491832
 (gdb)
 CountTreeDepth (w=<optimized out>) at
 /usr/xsrc/external/mit/libXt/dist/src/Resources.c:232
 232             count++;
 3: w->core.parent = <error: value has been optimized out>
 2: w->core.name = <error: value has been optimized out>
 1: count = 358491832
 (gdb)
 231         for (count = 1; w != NULL; w = (Widget) w->core.parent)
 3: w->core.parent = (Widget) 0x7f7ff7b87670
 2: w->core.name = (String) 0x7f7ff7b7519d "titleButton"
 1: count = 358491833
 (gdb)
 CountTreeDepth (w=<optimized out>) at
 /usr/xsrc/external/mit/libXt/dist/src/Resources.c:232
 232             count++;
 3: w->core.parent = <error: value has been optimized out>
 2: w->core.name = <error: value has been optimized out>
 1: count = 358491833
 (gdb)
 231         for (count = 1; w != NULL; w = (Widget) w->core.parent)
 3: w->core.parent = (Widget) 0x7f7ff7b40800
 2: w->core.name = (String) 0x7f7ff7b75671 "control"
 1: count = 358491834
 (gdb)
 CountTreeDepth (w=<optimized out>) at
 /usr/xsrc/external/mit/libXt/dist/src/Resources.c:232
 232             count++;
 3: w->core.parent = <error: value has been optimized out>
 2: w->core.name = <error: value has been optimized out>
 1: count = 358491834
 (gdb)
 231         for (count = 1; w != NULL; w = (Widget) w->core.parent)
 3: w->core.parent = (Widget) 0x7f7ff7b87670
 2: w->core.name = (String) 0x7f7ff7b7519d "titleButton"
 1: count = 358491835
 (gdb)
 CountTreeDepth (w=<optimized out>) at
 /usr/xsrc/external/mit/libXt/dist/src/Resources.c:232
 232             count++;
 3: w->core.parent = <error: value has been optimized out>
 2: w->core.name = <error: value has been optimized out>
 1: count = 358491835
 (gdb)
 231         for (count = 1; w != NULL; w = (Widget) w->core.parent)
 3: w->core.parent = (Widget) 0x7f7ff7b40800
 2: w->core.name = (String) 0x7f7ff7b75671 "control"
 1: count = 358491836
 (gdb)
 CountTreeDepth (w=<optimized out>) at
 /usr/xsrc/external/mit/libXt/dist/src/Resources.c:232
 232             count++;
 3: w->core.parent = <error: value has been optimized out>
 2: w->core.name = <error: value has been optimized out>
 1: count = 358491836
 (gdb)
 231         for (count = 1; w != NULL; w = (Widget) w->core.parent)
 3: w->core.parent = (Widget) 0x7f7ff7b87670
 2: w->core.name = (String) 0x7f7ff7b7519d "titleButton"
 1: count = 358491837


Ciao,
L.


Home | Main Index | Thread Index | Old Index