On Tue, Mar 31, 2009 at 09:12:38AM +0200, Julien Lavergne wrote:
>Le lundi 30 mars 2009 à 19:56 -0700, John Gruenenfelder a écrit :
>> None of these steps helped and all seem to have the same outcome:
>> 
>> $ python .screenlets/ClockRingMod/ClockRingModScreenlet.py
>> Segmentation fault
>> $ python /usr/share/screenlets/Clock/ClockScreenlet.py
>> Segmentation fault
>> $ python /usr/share/screenlets/AppMenu/AppMenuScreenlet.py
>> Segmentation fault
>> 
>> And after moving my old screnlets config directories out of the way:
>> 
>> $ screenlets-manager
>> Segmentation fault
>> 
>> How might I make these commands print more useful information, such as where
>> the segfault is occuring or possibly having python print out a stacktrace
>> rather than simply aborting?
>> 
>
>You can obtain a stacktrace by following the instructions of this
>pages : http://wiki.python.org/moin/DebuggingWithGdb . Note that you'll
>need to install some -dbg packages of different python packages (such as
>python-cairo-dbg).

Okay, I've installed some of the debug packages and now have backtraces for two
of the screenlets.  I've attached the log files containing the gdb output.


-- 
--John Gruenenfelder    Systems Manager, MKS Imaging Technology, LLC.
Try Weasel Reader for PalmOS  --  http://weaselreader.org
"This is the most fun I've had without being drenched in the blood
of my enemies!"
        --Sam of Sam & Max
$ gdb python
GNU gdb 6.8-debian
Copyright (C) 2008 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-linux-gnu"...
(gdb) run /usr/share/screenlets/AppMenu/AppMenuScreenlet.py
Starting program: /usr/bin/python 
/usr/share/screenlets/AppMenu/AppMenuScreenlet.py
[Thread debugging using libthread_db enabled]
[New Thread 0x7f620ca6f6f0 (LWP 20177)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f620ca6f6f0 (LWP 20177)]
PyType_IsSubtype (a=0x2e34530, b=0x7f620b9ba240) at ../Objects/typeobject.c:836
836     ../Objects/typeobject.c: No such file or directory.
        in ../Objects/typeobject.c
(gdb) bt
#0  PyType_IsSubtype (a=0x2e34530, b=0x7f620b9ba240)
    at ../Objects/typeobject.c:836
#1  0x00007f620b7a5afc in pyg_type_add_interfaces (class=0x2ed40a0, 
    instance_type=48807952, bases=0x2e948c0, new_interfaces=0, 
    parent_interfaces=0x2e80e50, n_parent_interfaces=0)
    at /tmp/buildd/pygobject-2.16.1/gobject/gobjectmodule.c:1088
#2  0x00007f620b7a5df8 in pyg_type_register (class=0x2ed40a0, 
    type_name=<value optimized out>)
    at /tmp/buildd/pygobject-2.16.1/gobject/gobjectmodule.c:1237
#3  0x00007f620b7a6cc8 in _wrap_pyg_type_register (self=<value optimized out>, 
    args=<value optimized out>)
    at /tmp/buildd/pygobject-2.16.1/gobject/gobjectmodule.c:954
#4  0x00000000004911d5 in PyEval_EvalFrameEx (f=0x29eafd0, 
    throwflag=<value optimized out>) at ../Python/ceval.c:3612
#5  0x0000000000491ce2 in PyEval_EvalFrameEx (f=0x2944c70, 
    throwflag=<value optimized out>) at ../Python/ceval.c:3698
#6  0x00000000004924cd in PyEval_EvalCodeEx (co=0x7f620c836558, 
    globals=<value optimized out>, locals=<value optimized out>, 
    args=0x7f620c819488, argcount=4, kws=0x0, kwcount=0, defs=0x0, defcount=0, 
    closure=0x0) at ../Python/ceval.c:2875
#7  0x00000000004dc992 in function_call (func=0x2883ed8, arg=0x7f620c819470, 
    kw=0x0) at ../Objects/funcobject.c:517
#8  0x0000000000418843 in PyObject_Call (func=0x2e34530, arg=0x7f620b9ba240, 
    kw=0x79702e) at ../Objects/abstract.c:1861
#9  0x000000000041f6e8 in instancemethod_call (func=0x2883ed8, 
    arg=0x7f620c819470, kw=0x0) at ../Objects/classobject.c:2519
#10 0x0000000000418843 in PyObject_Call (func=0x2e34530, arg=0x7f620b9ba240, 
    kw=0x79702e) at ../Objects/abstract.c:1861
#11 0x0000000000465f66 in slot_tp_init (self=0x2ed40a0, args=0x2e94960, 
    kwds=0x0) at ../Objects/typeobject.c:4976
#12 0x000000000046e04b in type_call (type=0x28cb9c0, args=0x2e94960, kwds=0x0)
    at ../Objects/typeobject.c:436
#13 0x000000000041e17b in PyObject_CallFunctionObjArgs (callable=0x28cb9c0)
    at ../Objects/abstract.c:1861
#14 0x000000000048ed34 in PyEval_EvalFrameEx (f=0x27d8140, 
    throwflag=<value optimized out>) at ../Python/ceval.c:4134
#15 0x00000000004924cd in PyEval_EvalCodeEx (co=0x7f620c81c120, 
    globals=<value optimized out>, locals=<value optimized out>, args=0x0, 
    argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2875
#16 0x00000000004926c2 in PyEval_EvalCode (co=0x2e34530, 
    globals=0x7f620b9ba240, locals=0x79702e) at ../Python/ceval.c:514
#17 0x00000000004a725e in PyImport_ExecCodeModuleEx (
    name=0x7fff14a886c0 "screenlets", co=0x7f620c81c120, 
    pathname=0x7fff14a85540 
"/var/lib/python-support/python2.5/screenlets/__init__.pyc") at 
../Python/import.c:675
#18 0x00000000004a7508 in load_source_module (
    name=0x7fff14a886c0 "screenlets", 
    pathname=0x7fff14a85540 
"/var/lib/python-support/python2.5/screenlets/__init__.pyc", fp=<value 
optimized out>) at ../Python/import.c:959
#19 0x00000000004a84d1 in load_package (name=0x7fff14a886c0 "screenlets", 
    pathname=<value optimized out>) at ../Python/import.c:1015
#20 0x00000000004a8ac4 in import_submodule (mod=0x72ecc0, 
    subname=0x7fff14a886c0 "screenlets", fullname=0x7fff14a886c0 "screenlets")
    at ../Python/import.c:2400
#21 0x00000000004a8d5c in load_next (mod=0x72ecc0, altmod=0x72ecc0, 
    p_name=<value optimized out>, buf=0x7fff14a886c0 "screenlets", 
    p_buflen=0x7fff14a896c8) at ../Python/import.c:2220
#22 0x00000000004a93bd in import_module_level (name=0x0, globals=0x2769520, 
    locals=<value optimized out>, fromlist=0x72ecc0, level=-1)
    at ../Python/import.c:2001
#23 0x00000000004a976f in PyImport_ImportModuleLevel (
    name=0x7f620ca2724c "screenlets", globals=0x2769520, locals=0x2769520, 
    fromlist=0x72ecc0, level=-1) at ../Python/import.c:2072
#24 0x000000000048ae39 in builtin___import__ (self=<value optimized out>, 
    args=<value optimized out>, kwds=<value optimized out>)
    at ../Python/bltinmodule.c:47
#25 0x0000000000418843 in PyObject_Call (func=0x2e34530, arg=0x7f620b9ba240, 
    kw=0x79702e) at ../Objects/abstract.c:1861
#26 0x000000000048b322 in PyEval_CallObjectWithKeywords (func=0x7f620ca3c5f0, 
    arg=0x7f620ca1bd08, kw=0x0) at ../Python/ceval.c:3481
#27 0x000000000048db56 in PyEval_EvalFrameEx (f=0x27c1320, 
    throwflag=<value optimized out>) at ../Python/ceval.c:2093
#28 0x00000000004924cd in PyEval_EvalCodeEx (co=0x7f620ca22d50, 
    globals=<value optimized out>, locals=<value optimized out>, args=0x0, 
    argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2875
#29 0x00000000004926c2 in PyEval_EvalCode (co=0x2e34530, 
    globals=0x7f620b9ba240, locals=0x79702e) at ../Python/ceval.c:514
#30 0x00000000004b2008 in PyRun_FileExFlags (fp=0x2746010, 
    filename=0x7fff14a8b5de 
"/usr/share/screenlets/AppMenu/AppMenuScreenlet.py", start=<value optimized 
out>, globals=0x2769520, locals=0x2769520, closeit=1, 
    flags=0x7fff14a89c60) at ../Python/pythonrun.c:1273
#31 0x00000000004b22ab in PyRun_SimpleFileExFlags (fp=0x2746010, 
    filename=0x7fff14a8b5de 
"/usr/share/screenlets/AppMenu/AppMenuScreenlet.py", closeit=1, 
flags=0x7fff14a89c60) at ../Python/pythonrun.c:879
#32 0x0000000000414572 in Py_Main (argc=1, argv=<value optimized out>)
    at ../Modules/main.c:532
#33 0x000000321ac1e5a6 in __libc_start_main () from /lib/libc.so.6
#34 0x00000000004139b9 in _start ()
$ gdb python
GNU gdb 6.8-debian
Copyright (C) 2008 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-linux-gnu"...
(gdb) run /usr/share/screenlets/Clock/ClockScreenlet.py
Starting program: /usr/bin/python /usr/share/screenlets/Clock/ClockScreenlet.py
[Thread debugging using libthread_db enabled]
[New Thread 0x7fba8ab526f0 (LWP 20099)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fba8ab526f0 (LWP 20099)]
PyType_IsSubtype (a=0x15bf6b0, b=0x7fba89a5c240) at ../Objects/typeobject.c:836
836     ../Objects/typeobject.c: No such file or directory.
        in ../Objects/typeobject.c
(gdb) bt
#0  PyType_IsSubtype (a=0x15bf6b0, b=0x7fba89a5c240)
    at ../Objects/typeobject.c:836
#1  0x00007fba89847afc in pyg_type_add_interfaces (class=0x165ebc0, 
    instance_type=23117760, bases=0x161ba50, new_interfaces=0, 
    parent_interfaces=0x15a7c10, n_parent_interfaces=0)
    at /tmp/buildd/pygobject-2.16.1/gobject/gobjectmodule.c:1088
#2  0x00007fba89847df8 in pyg_type_register (class=0x165ebc0, 
    type_name=<value optimized out>)
    at /tmp/buildd/pygobject-2.16.1/gobject/gobjectmodule.c:1237
#3  0x00007fba89848cc8 in _wrap_pyg_type_register (self=<value optimized out>, 
    args=<value optimized out>)
    at /tmp/buildd/pygobject-2.16.1/gobject/gobjectmodule.c:954
#4  0x00000000004911d5 in PyEval_EvalFrameEx (f=0x1175f80, 
    throwflag=<value optimized out>) at ../Python/ceval.c:3612
#5  0x0000000000491ce2 in PyEval_EvalFrameEx (f=0x10cfc10, 
    throwflag=<value optimized out>) at ../Python/ceval.c:3698
#6  0x00000000004924cd in PyEval_EvalCodeEx (co=0x7fba8a8d7120, 
    globals=<value optimized out>, locals=<value optimized out>, 
    args=0x7fba8a8c0118, argcount=4, kws=0x0, kwcount=0, defs=0x0, defcount=0, 
    closure=0x0) at ../Python/ceval.c:2875
#7  0x00000000004dc992 in function_call (func=0x100eaa0, arg=0x7fba8a8c0100, 
    kw=0x0) at ../Objects/funcobject.c:517
#8  0x0000000000418843 in PyObject_Call (func=0x15bf6b0, arg=0x7fba89a5c240, 
    kw=0x79702e) at ../Objects/abstract.c:1861
#9  0x000000000041f6e8 in instancemethod_call (func=0x100eaa0, 
    arg=0x7fba8a8c0100, kw=0x0) at ../Objects/classobject.c:2519
#10 0x0000000000418843 in PyObject_Call (func=0x15bf6b0, arg=0x7fba89a5c240, 
    kw=0x79702e) at ../Objects/abstract.c:1861
#11 0x0000000000465f66 in slot_tp_init (self=0x165ebc0, args=0x161baf0, 
    kwds=0x0) at ../Objects/typeobject.c:4976
#12 0x000000000046e04b in type_call (type=0x10568c0, args=0x161baf0, kwds=0x0)
    at ../Objects/typeobject.c:436
#13 0x000000000041e17b in PyObject_CallFunctionObjArgs (callable=0x10568c0)
    at ../Objects/abstract.c:1861
#14 0x000000000048ed34 in PyEval_EvalFrameEx (f=0xf60ff0, 
    throwflag=<value optimized out>) at ../Python/ceval.c:4134
#15 0x00000000004924cd in PyEval_EvalCodeEx (co=0x7fba8a8bcc60, 
    globals=<value optimized out>, locals=<value optimized out>, args=0x0, 
    argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2875
#16 0x00000000004926c2 in PyEval_EvalCode (co=0x15bf6b0, 
    globals=0x7fba89a5c240, locals=0x79702e) at ../Python/ceval.c:514
#17 0x00000000004a725e in PyImport_ExecCodeModuleEx (
    name=0x7fff92b6b7b0 "screenlets", co=0x7fba8a8bcc60, 
    pathname=0x7fff92b68630 
"/var/lib/python-support/python2.5/screenlets/__init__.pyc") at 
../Python/import.c:675
#18 0x00000000004a7508 in load_source_module (
    name=0x7fff92b6b7b0 "screenlets", 
    pathname=0x7fff92b68630 
"/var/lib/python-support/python2.5/screenlets/__init__.pyc", fp=<value 
optimized out>) at ../Python/import.c:959
#19 0x00000000004a84d1 in load_package (name=0x7fff92b6b7b0 "screenlets", 
    pathname=<value optimized out>) at ../Python/import.c:1015
#20 0x00000000004a8ac4 in import_submodule (mod=0x72ecc0, 
    subname=0x7fff92b6b7b0 "screenlets", fullname=0x7fff92b6b7b0 "screenlets")
    at ../Python/import.c:2400
#21 0x00000000004a8d5c in load_next (mod=0x72ecc0, altmod=0x72ecc0, 
    p_name=<value optimized out>, buf=0x7fff92b6b7b0 "screenlets", 
    p_buflen=0x7fff92b6c7b8) at ../Python/import.c:2220
#22 0x00000000004a93bd in import_module_level (name=0x0, globals=0xeeb520, 
    locals=<value optimized out>, fromlist=0x72ecc0, level=-1)
    at ../Python/import.c:2001
#23 0x00000000004a976f in PyImport_ImportModuleLevel (
    name=0x7fba8ab0a524 "screenlets", globals=0xeeb520, locals=0xeeb520, 
    fromlist=0x72ecc0, level=-1) at ../Python/import.c:2072
#24 0x000000000048ae39 in builtin___import__ (self=<value optimized out>, 
    args=<value optimized out>, kwds=<value optimized out>)
    at ../Python/bltinmodule.c:47
#25 0x0000000000418843 in PyObject_Call (func=0x15bf6b0, arg=0x7fba89a5c240, 
    kw=0x79702e) at ../Objects/abstract.c:1861
#26 0x000000000048b322 in PyEval_CallObjectWithKeywords (func=0x7fba8ab1f5f0, 
    arg=0x7fba8ab0d418, kw=0x0) at ../Python/ceval.c:3481
#27 0x000000000048db56 in PyEval_EvalFrameEx (f=0xf5c580, 
    throwflag=<value optimized out>) at ../Python/ceval.c:2093
#28 0x00000000004924cd in PyEval_EvalCodeEx (co=0x7fba8ab05990, 
    globals=<value optimized out>, locals=<value optimized out>, args=0x0, 
    argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0)
    at ../Python/ceval.c:2875
#29 0x00000000004926c2 in PyEval_EvalCode (co=0x15bf6b0, 
    globals=0x7fba89a5c240, locals=0x79702e) at ../Python/ceval.c:514
#30 0x00000000004b2008 in PyRun_FileExFlags (fp=0xec8010, 
    filename=0x7fff92b6e5e2 "/usr/share/screenlets/Clock/ClockScreenlet.py", 
    start=<value optimized out>, globals=0xeeb520, locals=0xeeb520, closeit=1, 
    flags=0x7fff92b6cd50) at ../Python/pythonrun.c:1273
#31 0x00000000004b22ab in PyRun_SimpleFileExFlags (fp=0xec8010, 
    filename=0x7fff92b6e5e2 "/usr/share/screenlets/Clock/ClockScreenlet.py", 
    closeit=1, flags=0x7fff92b6cd50) at ../Python/pythonrun.c:879
#32 0x0000000000414572 in Py_Main (argc=1, argv=<value optimized out>)
    at ../Modules/main.c:532
#33 0x000000321ac1e5a6 in __libc_start_main () from /lib/libc.so.6
#34 0x00000000004139b9 in _start ()

Reply via email to