Print stacktrace on Qt warnings.
This commit is contained in:
parent
c5a2039da4
commit
caad56c978
@ -26,6 +26,7 @@ import logging
|
|||||||
import contextlib
|
import contextlib
|
||||||
import collections
|
import collections
|
||||||
import faulthandler
|
import faulthandler
|
||||||
|
import traceback
|
||||||
|
|
||||||
from PyQt5.QtCore import (QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg,
|
from PyQt5.QtCore import (QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg,
|
||||||
qInstallMessageHandler)
|
qInstallMessageHandler)
|
||||||
@ -294,8 +295,16 @@ def qt_message_handler(msg_type, context, msg):
|
|||||||
msg += ("\n\nOn Archlinux, this should fix the problem:\n"
|
msg += ("\n\nOn Archlinux, this should fix the problem:\n"
|
||||||
" pacman -S libxkbcommon-x11")
|
" pacman -S libxkbcommon-x11")
|
||||||
faulthandler.disable()
|
faulthandler.disable()
|
||||||
|
try:
|
||||||
|
frame = sys._getframe(1)
|
||||||
|
except (AttributeError, ValueError):
|
||||||
|
# sys._getframe might not exist in some Python implementations.
|
||||||
|
# It could raise ValueError if the stack is less than one level deep -
|
||||||
|
# this SHOULD never happen, but we're better safe than sorry here.
|
||||||
|
frame = None
|
||||||
|
stack = ''.join(traceback.format_stack(f=frame))
|
||||||
record = qt.makeRecord(name, level, context.file, context.line, msg, None,
|
record = qt.makeRecord(name, level, context.file, context.line, msg, None,
|
||||||
None, func)
|
None, func, sinfo=stack)
|
||||||
qt.handle(record)
|
qt.handle(record)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user