Python 3.15 introduced PyREPL as the default pdb input backend
(via _maybe_use_pyrepl_as_stdin()), which temporarily sets
use_rawinput=False before calling cmdloop(). IPython's TerminalPdb
raises ValueError when it sees use_rawinput=False.
Override _cmdloop() in IPython.core.debugger.Pdb to bypass the
PyREPL wrapping — IPython already has its own input handling via
prompt_toolkit and doesn't need PyREPL.
Fixes:
ipython#15217
Python 3.15 introduced PyREPL as the default pdb input backend (via _maybe_use_pyrepl_as_stdin()), which temporarily sets use_rawinput=False before calling cmdloop(). IPython's TerminalPdb raises ValueError when it sees use_rawinput=False.
Override _cmdloop() in IPython.core.debugger.Pdb to bypass the PyREPL wrapping — IPython already has its own input handling via prompt_toolkit and doesn't need PyREPL.
Fixes: #15217