Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/pudb/__init__.py", line 162, in runscript
dbg._runscript(mainpyfile)
File "/usr/lib/python3.12/site-packages/pudb/debugger.py", line 534, in _runscript
self.run(statement)
File "/usr/lib/python3.12/bdb.py", line 600, in run
exec(cmd, globals, locals)
File "<string>", line 1, in <module>
File "pudb-bug.py", line 9, in <module>
r = np.sqrt(x ** 2 + y ** 2 + z ** 2)
^
File "/usr/lib/python3.12/bdb.py", line 94, in trace_dispatch
return self.dispatch_return(frame, arg)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/bdb.py", line 153, in dispatch_return
self.user_return(frame, arg)
File "/usr/lib/python3.12/site-packages/pudb/debugger.py", line 479, in user_return
self.interaction(frame)
File "/usr/lib/python3.12/site-packages/pudb/debugger.py", line 436, in interaction
self.ui.call_with_ui(self.ui.interaction, exc_tuple,
File "/usr/lib/python3.12/site-packages/pudb/debugger.py", line 2556, in call_with_ui
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pudb/debugger.py", line 2879, in interaction
self.event_loop()
File "/usr/lib/python3.12/site-packages/pudb/debugger.py", line 2834, in event_loop
canvas = toplevel.render(self.size, focus=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 711, in render
canv = get_delegate(self).render(size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/frame.py", line 481, in render
body = self.body.render((maxcol, maxrow - ftrim - htrim), focus and self.focus_part == "body")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/attr_map.py", line 158, in render
canv = self._original_widget.render(size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/columns.py", line 1026, in render
w.render(w_size, focus=focus and self.focus_position == i),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 711, in render
canv = get_delegate(self).render(size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/pile.py", line 873, in render
canv = w.render(w_size, focus=focus and item_focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/attr_map.py", line 158, in render
canv = self._original_widget.render(size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/pile.py", line 873, in render
canv = w.render(w_size, focus=focus and item_focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/attr_map.py", line 158, in render
canv = self._original_widget.render(size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 711, in render
canv = get_delegate(self).render(size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/urwid/widget/listbox.py", line 755, in render
raise ListBoxError(
urwid.widget.listbox.ListBoxError: Widget <VariableWidget selectable flow widget> at position 1 within listbox calculated 111 rows but rendered 110!
Describe the bug
When using
stringifier = reprand there are several variables with a long repr in the local scope, pudb crashes somewhere inurwid/widget/listbox.py::755with an error likeThis started happening in the last 2-3 months, I think, but I haven't had time to track it down.
Full traceback
To Reproduce
For a simple reproducer
and then running
python -m pudb reproducer.pyand pressingna few times will cause the crash above.Versions