#692 Debugger crashes

1.3.15
closed-fixed
debugger (210)
5
2008-05-01
2008-05-01
Chris Welch
No

Using Eclipse v3.3.2, pyDev 1.3.15

The code base is huge, so I'm unable to provide you with source to reproduce.

I set a break point in my code and start a debug run.

The break point is never hit. Hits 'no such attribute exception with the thread object in pyDev.

pyDev crashes with the following traceback:

Error iterating through {11858832: 11858832, 11116976: 11116976, 11020432: 11020432, 11858992: 11858992} (<type 'dict'>) - ['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__str__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
Traceback (most recent call last):
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd_frame.py", line 95, in trace_dispatch
self.doWaitSuspend(thread, frame, event, arg)
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd_frame.py", line 23, in doWaitSuspend
self._args[0].doWaitSuspend(*args, **kwargs)
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd.py", line 518, in doWaitSuspend
self.processInternalCommands()
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd.py", line 282, in processInternalCommands
self.processThreadNotAlive(tId)
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd.py", line 502, in processThreadNotAlive
wasNotified = thread.additionalInfo.pydev_notify_kill
AttributeError: '_Timer' object has no attribute 'additionalInfo'
Traceback (most recent call last):
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd.py", line 840, in ?
debugger.run(setup['file'], None, None)
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd.py", line 679, in run
execfile(file, globals, locals) #execute the script
File "C:\1830svt\automation\app\clitest.py", line 151, in ?
pprint.pprint(s.api.getNodeMode())
File "<string>", line 3, in getNodeMode_funcProxy
File "C:\1830svt\automation\lib\envirteca\interfaces\ne\_clicommands.py", line 328, in Api_getNodeMode
line = self.sendCmdSafely('show admin mode')[1:1]
File "C:\1830svt\automation\lib\envirteca\interfaces\ne\_clicommands.py", line 328, in Api_getNodeMode
line = self.sendCmdSafely('show admin mode')[1:1]
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd_frame.py", line 95, in trace_dispatch
self.doWaitSuspend(thread, frame, event, arg)
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd_frame.py", line 23, in doWaitSuspend
self._args[0].doWaitSuspend(*args, **kwargs)
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd.py", line 518, in doWaitSuspend
self.processInternalCommands()
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd.py", line 282, in processInternalCommands
self.processThreadNotAlive(tId)
File "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd.py", line 502, in processThreadNotAlive
wasNotified = thread.additionalInfo.pydev_notify_kill
AttributeError: '_Timer' object has no attribute 'additionalInfo'

Discussion

  • Fabio Zadrozny

    Fabio Zadrozny - 2008-05-01

    Logged In: YES
    user_id=617340
    Originator: NO

    It appears Pydev detected a thread that was not traced (so, was not decorated with the additional info for debugging). Try changing
    "C:\Program Files\Eclipse-3.3\eclipse\plugins\org.python.pydev.debug_1.3.15\pysrc\pydevd.py" right after

    line 194: if id(t) == thread_id:

    add the following:

    if not hasattr(t, 'additionalInfo'):
    ....t.additionalInfo = pydevd_additional_thread_info.PyDBAdditionalThreadInfo()

    I've already changed it in cvs for version 1.3.16 (please reopen this bug if that didn't fix it for you).

    Cheers,

    Fabio

     
  • Fabio Zadrozny

    Fabio Zadrozny - 2008-05-01
    • status: open --> closed-fixed
     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks