[BUG]: PCSX2 sometimes crashes when game is reset due to debugger window.
Describe the Bug
Title.
https://github.com/user-attachments/assets/db30672d-1105-461b-be3d-f30453f6bd89
Reproduction Steps
- Start a game
- Open the debugger
- Pause using the debugger, then resume.
- Reset the game
Expected Behavior
No crashing.
PCSX2 Revision
2.1.12
Operating System
Windows 11
If Linux - Specify Distro
No response
Logs & Dumps
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8E5BCAF5) 00007FFA8E5BCAF5 (Qt6Gui): (filename not available): QRasterPaintEngine::drawTextItem ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8E5D6B02) 00007FFA8E5D6B02 (Qt6Gui): (filename not available): QPainter::drawTextItem ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8E74FF29) 00007FFA8E74FF29 (Qt6Gui): (filename not available): QTextLine::draw_internal ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8E5DBE1A) 00007FFA8E5DBE1A (Qt6Gui): (filename not available): qt_draw_helper ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8E5D61FB) 00007FFA8E5D61FB (Qt6Gui): (filename not available): QPainter::drawText ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E840A5DF) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E840A5DF) 00007FF6E840A5DF (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99436C7F) 00007FFA99436C7F (Qt6Widgets): (filename not available): QWidget::event ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA993F27FE) 00007FFA993F27FE (Qt6Widgets): (filename not available): QApplicationPrivate::notify_helper ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA993F198D) 00007FFA993F198D (Qt6Widgets): (filename not available): QApplication::notify ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8DF1936C) 00007FFA8DF1936C (Qt6Core): (filename not available): QCoreApplication::notifyInternal2 ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99435FB4) 00007FFA99435FB4 (Qt6Widgets): (filename not available): QWidgetPrivate::drawWidget ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99455FF0) 00007FFA99455FF0 (Qt6Widgets): (filename not available): QWidgetRepaintManager::paintAndFlush ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99437077) 00007FFA99437077 (Qt6Widgets): (filename not available): QWidget::event ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA993F27FE) 00007FFA993F27FE (Qt6Widgets): (filename not available): QApplicationPrivate::notify_helper ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA993F198D) 00007FFA993F198D (Qt6Widgets): (filename not available): QApplication::notify ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8DF1936C) 00007FFA8DF1936C (Qt6Core): (filename not available): QCoreApplication::notifyInternal2 ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99456961) 00007FFA99456961 (Qt6Widgets): (filename not available): QWidgetRepaintManager::sendUpdateRequest ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99451597) 00007FFA99451597 (Qt6Widgets): (filename not available): QWidget::y ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99441BA1) 00007FFA99441BA1 (Qt6Widgets): (filename not available): QWidget::repaint ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99441D5D) 00007FFA99441D5D (Qt6Widgets): (filename not available): QWidget::repaint ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E83FB6A9) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E83FB6A9) 00007FF6E83FB6A9 (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8DF59511) 00007FFA8DF59511 (Qt6Core): (filename not available): QObject::qt_static_metacall ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8DF5C364) 00007FFA8DF5C364 (Qt6Core): (filename not available): QMetaObject::activate ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E7EB43EB) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E7EB43EB) 00007FF6E7EB43EB (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E7ECFC68) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E7ECFC68) 00007FF6E7ECFC68 (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E81D41C0) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E81D41C0) 00007FF6E81D41C0 (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E81D6705) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E81D6705) 00007FF6E81D6705 (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E81D56E5) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E81D56E5) 00007FF6E81D56E5 (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E8409BCB) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E8409BCB) 00007FF6E8409BCB (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99436C7F) 00007FFA99436C7F (Qt6Widgets): (filename not available): QWidget::event ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA993F27FE) 00007FFA993F27FE (Qt6Widgets): (filename not available): QApplicationPrivate::notify_helper ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA993F198D) 00007FFA993F198D (Qt6Widgets): (filename not available): QApplication::notify ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8DF1936C) 00007FFA8DF1936C (Qt6Core): (filename not available): QCoreApplication::notifyInternal2 ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99435FB4) 00007FFA99435FB4 (Qt6Widgets): (filename not available): QWidgetPrivate::drawWidget ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99455FF0) 00007FFA99455FF0 (Qt6Widgets): (filename not available): QWidgetRepaintManager::paintAndFlush ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA99437077) 00007FFA99437077 (Qt6Widgets): (filename not available): QWidget::event ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA993F27FE) 00007FFA993F27FE (Qt6Widgets): (filename not available): QApplicationPrivate::notify_helper ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA993F198D) 00007FFA993F198D (Qt6Widgets): (filename not available): QApplication::notify ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8DF1936C) 00007FFA8DF1936C (Qt6Core): (filename not available): QCoreApplication::notifyInternal2 ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8DF1C12E) 00007FFA8DF1C12E (Qt6Core): (filename not available): QCoreApplicationPrivate::sendPostedEvents ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8E7B706F) 00007FFA8E7B706F (Qt6Gui): (filename not available): QWindowsGuiEventDispatcher::sendPostedEvents ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8E0A2569) 00007FFA8E0A2569 (Qt6Core): (filename not available): QEventDispatcherWin32::processEvents ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8E7B6FE9) 00007FFA8E7B6FE9 (Qt6Gui): (filename not available): QWindowsGuiEventDispatcher::processEvents ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8DF20A64) 00007FFA8DF20A64 (Qt6Core): (filename not available): QEventLoop::exec ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFA8DF16CDD) 00007FFA8DF16CDD (Qt6Core): (filename not available): QCoreApplication::exec ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E8323B6D) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E8323B6D) 00007FF6E8323B6D (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E8708820) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E8708820) 00007FF6E8708820 (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetSymFromAddr64, GetLastError: 487 (Address: 00007FF6E87086A6) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF6E87086A6) 00007FF6E87086A6 (pcsx2-qt): (filename not available): (function-name not available) ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFB051A53E0) 00007FFB051A53E0 (KERNEL32): (filename not available): BaseThreadInitThunk ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFB0540485B) 00007FFB0540485B (ntdll): (filename not available): RtlUserThreadStart
I believe "Pause On TLB Miss" is causing this, because once I disabled it, issue was no longer.
Wow, some weird recursive edgecase. The disassembly widget dries to redraw when it shouldn't, which tries to read vtlb memory, which causes a tlb miss (because the core is resetting?) which causes the vm to pause, which causes the disassembly widget to draw, etc.
Can you see if https://github.com/PCSX2/pcsx2/pull/11595 fixes the issue?