pcsx2 icon indicating copy to clipboard operation
pcsx2 copied to clipboard

[BUG]: PCSX2 sometimes crashes when game is reset due to debugger window.

Open ghost opened this issue 1 year ago • 3 comments

Describe the Bug

Title.

https://github.com/user-attachments/assets/db30672d-1105-461b-be3d-f30453f6bd89

Reproduction Steps

  1. Start a game
  2. Open the debugger
  3. Pause using the debugger, then resume.
  4. 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

ghost avatar Jul 19 '24 20:07 ghost

I believe "Pause On TLB Miss" is causing this, because once I disabled it, issue was no longer.

ghost avatar Jul 19 '24 20:07 ghost

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.

F0bes avatar Jul 19 '24 20:07 F0bes

Can you see if https://github.com/PCSX2/pcsx2/pull/11595 fixes the issue?

F0bes avatar Jul 19 '24 21:07 F0bes