- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个国际象棋程序,其中 GUI 通过 UCI protocol 与引擎进行通信。 ,目前使用 OSX 和 PyCharm。我正在使用 QProcess 进行通信。
我的应用程序崩溃了,但我无法确定地重现这些崩溃。 Python 输出仅给出
Process finished with exit code 134
OSX 上的崩溃报告提供了详细的报告,但说实话,我完全不知道如何进一步了解。我怀疑线程存在一些问题,但是如何调试?
Process: Python [527]
Path: /usr/local/Cellar/python3/3.4.1/Frameworks/Python.framework/Versions/3.4/Resources/Python.app/Contents/MacOS/Python
Identifier: org.python.python
Version: 3.4.1 (3.4.1)
Code Type: X86-64 (Native)
Parent Process: pycharm [360]
Responsible: pycharm [360]
User ID: 501
Date/Time: 2015-02-16 10:40:09.497 +0100
OS Version: Mac OS X 10.9.5 (13F34)
Report Version: 11
Anonymous UUID: XXXXXX
Crashed Thread: 4 Uci_engine
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Application Specific Information:
abort() called
*** error for object 0x7fb104975000: pointer being realloc'd was not allocated
Thread 0:: Dispatch queue: com.apple.main-thread
0 QtCore 0x0000000109475d2e QByteArray::resize(int) + 6
1 QtCore 0x00000001094ec5e9 QRingBuffer::clear() + 123
2 QtCore 0x00000001094f58ab QProcess::readData(char*, long long) + 257
3 QtCore.so 0x000000010a081784 sipQProcess::readData(char*, long long) + 106
4 QtCore 0x00000001094f0648 QIODevice::read(char*, long long) + 828
5 QtCore 0x00000001094f0a92 QIODevice::readAll() + 398
6 QtCore 0x00000001094f59a6 QProcess::readAllStandardOutput() + 48
7 QtCore.so 0x000000010a082b78 meth_QProcess_readAllStandardOutput(_object*, _object*) + 120
8 org.python.python 0x0000000107cbad5c PyEval_EvalFrameEx + 19156
9 org.python.python 0x0000000107cb60d4 PyEval_EvalCodeEx + 1628
10 org.python.python 0x0000000107c490b8 function_call + 360
11 org.python.python 0x0000000107c2be11 PyObject_Call + 103
12 org.python.python 0x0000000107c3a8a4 method_call + 136
13 org.python.python 0x0000000107c2be11 PyObject_Call + 103
14 org.python.python 0x0000000107cbdb30 PyEval_CallObjectWithKeywords + 93
15 sip.so 0x00000001097bfd68 sip_api_invoke_slot_ex + 435
16 QtCore.so 0x000000010a0f5cb0 PyQtProxy::invokeSlot(qpycore_slot const&, void**, int) + 162
17 QtCore.so 0x000000010a0f5b7c PyQtProxy::unislot(void**) + 184
18 QtCore.so 0x000000010a0f5ab3 PyQtProxy::qt_metacall(QMetaObject::Call, int, void**) + 111
19 QtCore 0x000000010956222d QObject::event(QEvent*) + 637
20 QtGui 0x0000000108985ed5 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 195
21 QtGui 0x0000000108987419 QApplication::notify(QObject*, QEvent*) + 889
22 QtGui.so 0x000000010811a29a sipQApplication::notify(QObject*, QEvent*) + 122
23 QtCore 0x0000000109551bb8 QCoreApplication::notifyInternal(QObject*, QEvent*) + 118
24 QtCore 0x000000010955259c QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 716
25 com.apple.CoreFoundation 0x00007fff904985b1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
26 com.apple.CoreFoundation 0x00007fff90489c62 __CFRunLoopDoSources0 + 242
27 com.apple.CoreFoundation 0x00007fff904893ef __CFRunLoopRun + 831
28 com.apple.CoreFoundation 0x00007fff90488e75 CFRunLoopRunSpecific + 309
29 com.apple.HIToolbox 0x00007fff87427a0d RunCurrentEventLoopInMode + 226
30 com.apple.HIToolbox 0x00007fff87427685 ReceiveNextEventCommon + 173
31 com.apple.HIToolbox 0x00007fff874275bc _BlockUntilNextEventMatchingListInModeWithFilter + 65
32 com.apple.AppKit 0x00007fff87e5724e _DPSNextEvent + 1434
33 com.apple.AppKit 0x00007fff87e5689b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
34 com.apple.AppKit 0x00007fff87e4a99c -[NSApplication run] + 553
35 QtGui 0x0000000108943936 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 540
36 QtCore 0x000000010954f215 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 77
37 QtCore 0x000000010954f386 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 356
38 QtCore 0x0000000109552009 QCoreApplication::exec() + 199
39 QtGui.so 0x000000010811b4eb meth_QApplication_exec_(_object*, _object*) + 80
40 org.python.python 0x0000000107cbad5c PyEval_EvalFrameEx + 19156
41 org.python.python 0x0000000107cb60d4 PyEval_EvalCodeEx + 1628
42 org.python.python 0x0000000107cb5a72 PyEval_EvalCode + 63
43 org.python.python 0x0000000107cd9b28 run_mod + 58
44 org.python.python 0x0000000107cd9dc7 PyRun_FileExFlags + 178
45 org.python.python 0x0000000107cd95e7 PyRun_SimpleFileExFlags + 909
46 org.python.python 0x0000000107cec4f7 Py_Main + 3095
47 org.python.python 0x0000000107c19e27 0x107c18000 + 7719
48 libdyld.dylib 0x00007fff87a165fd start + 1
Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0 libsystem_kernel.dylib 0x00007fff8e18f662 kevent64 + 10
1 libdispatch.dylib 0x00007fff86c6f421 _dispatch_mgr_invoke + 239
2 libdispatch.dylib 0x00007fff86c6f136 _dispatch_mgr_thread + 52
Thread 2:
0 libsystem_kernel.dylib 0x00007fff8e18aa1a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff8e189d18 mach_msg + 64
2 com.apple.CoreFoundation 0x00007fff90489f15 __CFRunLoopServiceMachPort + 181
3 com.apple.CoreFoundation 0x00007fff90489539 __CFRunLoopRun + 1161
4 com.apple.CoreFoundation 0x00007fff90488e75 CFRunLoopRunSpecific + 309
5 com.apple.AppKit 0x00007fff87ff705e _NSEventThread + 144
6 libsystem_pthread.dylib 0x00007fff8c7a2899 _pthread_body + 138
7 libsystem_pthread.dylib 0x00007fff8c7a272a _pthread_start + 137
8 libsystem_pthread.dylib 0x00007fff8c7a6fc9 thread_start + 13
Thread 3:: QProcessManager
0 libsystem_kernel.dylib 0x00007fff8e18e9aa __select + 10
1 QtCore 0x000000010952cf86 QProcessManager::run() + 132
2 QtCore 0x00000001094735ba QThreadPrivate::start(void*) + 386
3 libsystem_pthread.dylib 0x00007fff8c7a2899 _pthread_body + 138
4 libsystem_pthread.dylib 0x00007fff8c7a272a _pthread_start + 137
5 libsystem_pthread.dylib 0x00007fff8c7a6fc9 thread_start + 13
Thread 4 Crashed:: Uci_engine
0 libsystem_kernel.dylib 0x00007fff8e18e866 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff8c7a335c pthread_kill + 92
2 libsystem_c.dylib 0x00007fff91b34b1a abort + 125
3 libsystem_malloc.dylib 0x00007fff876b5451 realloc + 364
4 QtCore 0x00000001094762dd QByteArray::realloc(int) + 161
5 QtCore 0x0000000109475d88 QByteArray::resize(int) + 96
6 QtCore 0x00000001094ec6c1 QRingBuffer::reserve(int) + 157
7 QtCore 0x00000001094f41ec QProcessPrivate::_q_canReadStandardOutput() + 76
8 QtCore 0x00000001094f65ce QProcess::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) + 364
9 QtCore 0x0000000109565d71 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) + 2037
10 QtCore 0x00000001095a7b68 QSocketNotifier::activated(int) + 60
11 QtCore 0x000000010956a421 QSocketNotifier::event(QEvent*) + 383
12 QtGui 0x0000000108985ed5 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 195
13 QtGui 0x0000000108987419 QApplication::notify(QObject*, QEvent*) + 889
14 QtGui.so 0x000000010811a29a sipQApplication::notify(QObject*, QEvent*) + 122
15 QtCore 0x0000000109551bb8 QCoreApplication::notifyInternal(QObject*, QEvent*) + 118
16 QtCore 0x0000000109579db7 QEventDispatcherUNIX::activateSocketNotifiers() + 203
17 QtCore 0x0000000109579b8e QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) + 1426
18 QtCore 0x000000010957ae39 QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 341
19 QtCore 0x000000010954f215 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 77
20 QtCore 0x000000010954f386 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 356
21 QtCore 0x0000000109471ca5 QThread::exec() + 217
22 QtCore.so 0x000000010a0c28f3 meth_QThread_exec_(_object*, _object*) + 99
23 org.python.python 0x0000000107cbad5c PyEval_EvalFrameEx + 19156
24 org.python.python 0x0000000107cb60d4 PyEval_EvalCodeEx + 1628
25 org.python.python 0x0000000107c490b8 function_call + 360
26 org.python.python 0x0000000107c2be11 PyObject_Call + 103
27 org.python.python 0x0000000107c3a8a4 method_call + 136
28 org.python.python 0x0000000107c2be11 PyObject_Call + 103
29 org.python.python 0x0000000107cbdb30 PyEval_CallObjectWithKeywords + 93
30 sip.so 0x00000001097b6559 sip_api_call_method + 214
31 QtCore.so 0x000000010a002174 sipVH_QtCore_11(PyGILState_STATE, void (*)(_sipSimpleWrapper*, PyGILState_STATE), _sipSimpleWrapper*, _object*) + 47
32 QtCore.so 0x000000010a0c24fb sipQThread::run() + 79
33 QtCore 0x00000001094735ba QThreadPrivate::start(void*) + 386
34 libsystem_pthread.dylib 0x00007fff8c7a2899 _pthread_body + 138
35 libsystem_pthread.dylib 0x00007fff8c7a272a _pthread_start + 137
36 libsystem_pthread.dylib 0x00007fff8c7a6fc9 thread_start + 13
Thread 5:
0 libsystem_kernel.dylib 0x00007fff8e18ee6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8c7a3f08 _pthread_wqthread + 330
2 libsystem_pthread.dylib 0x00007fff8c7a6fb9 start_wqthread + 13
Thread 4 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x000000010a84d000 rcx: 0x000000010a84bd98 rdx: 0x0000000000000000
rdi: 0x0000000000002f1f rsi: 0x0000000000000006 rbp: 0x000000010a84bdc0 rsp: 0x000000010a84bd98
r8: 0x00000000fffffff8 r9: 0x0000000000000000 r10: 0x0000000008000000 r11: 0x0000000000000206
r12: 0x00007fb104975000 r13: 0x0000000000000004 r14: 0x0000000000000006 r15: 0x0000000107c1e000
rip: 0x00007fff8e18e866 rfl: 0x0000000000000206 cr2: 0x00007fff784a0408
Logical CPU: 0
Error Code: 0x02000148
Trap Number: 133
最佳答案
看起来这个线程崩溃了。
Thread 4 Crashed:: Uci_engine
0 libsystem_kernel.dylib 0x00007fff8e18e866 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff8c7a335c pthread_kill + 92
2 libsystem_c.dylib 0x00007fff91b34b1a abort + 125
3 libsystem_malloc.dylib 0x00007fff876b5451 realloc + 364
4 QtCore 0x00000001094762dd QByteArray::realloc(int) + 161
该线程崩溃导致整个程序崩溃并退出。
从堆栈上看,好像是内存访问出现异常,通常这种调试对于python来说比较困难,对于PyQt来说则更复杂。它需要你了解很多cpython及其实现,此外你还应该了解Qt和Sip的实现,因为Cpython有GC,所以比较复杂。在我看来,如果可以重现此问题,请尝试添加更多日志以找出导致此问题的代码行。如果这种情况偶尔发生并且通常在 Qt 退出时间期间发生,那么您应该优雅地设置继承树。
另外,您使用的是哪个版本的pycharm?最新的 PyCharm 4.* 将在调试期间自动挂接 python 可执行程序,我发现有时它会在复杂的 PyQt 项目的调试期间崩溃,但如果只在不调试的情况下运行,如果这只发生在“调试”程序时,就可以了,您可以尝试切换到较早的 pycharm 或只是禁用此自动 Hook 功能。
关于python - 如何调试 PyQt 崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28538605/
我现在已经用 PyQt 做了几个项目,而且我越来越熟悉 Qt 采用的模型/ View 思想流派。我已经将它用于列表和表格 View 之类的东西,它们背后有一个自定义模型来显示和操作数据。我使用委托(d
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * class MainWindow(QMainWindow):
使用下面的示例代码(受 here 的严重影响),右键单击上下文菜单并没有真正正确对齐。 从屏幕截图中可以看出,生成的菜单在鼠标光标上方相当多的位置。我希望菜单的左上角与鼠标指针完全对齐。 有没有办法对
所以我创建了一个自定义上下文菜单,但我想根据某些值将树小部件的某些行中的某些项目灰显。如何禁用菜单上的项目? myUI.setContextMenuPolicy( Qt.CustomContextMe
是否可以禁用 QComboBox在 pyqt 中,就像我们可以在 Win Forms(C#) 中那样做,因为我在 QComboBox 中找不到任何选项手动的。我想启用 QcomboBox仅当管理员登录
我想将 QComboBox 与元组中的“键”和“值”一起使用,该元组类似于 django 模型中使用的元组。例如,我对一个人的性别有以下结构。 SEX_CHOICES = (('M', 'Male')
是否可以让 Altair 或 Vega(-Lite) 渲染到 PyQt 小部件,类似于支持多个后端的 Matplotlib?我知道我可以使用 Qt WebView 小部件来呈现带有 Vega 嵌入的网
在下面的示例代码中(受 here 的影响很大),我希望选择单击单元格的整行而不是单个单元格。如何更改代码以合并它? import re import operator import os import
我正在尝试禁用关闭“x”按钮,并且我认为通过将 DockWidgetFeature 设置为仅可移动和可 float 即可工作。 def CreateDockWidget (self): Pan
我已经按照 Yasin Uludag 的一些有用的在线教程来尝试使用 PyQt(或者更确切地说是 PySide)来创建一个简单的 TreeView ,但是我在使用工具提示时遇到了问题。在以下代码中,工
我正在尝试创建一个场景,我需要从 mousePressEvent 位置画线到最新的鼠标 moveposition 这意味着我需要调用 paintEvent 来自 mousePressEvent ,这可
是Python 3的组合和 PyQt 4受到推崇的?有没有其他选择? 最佳答案 我不明白为什么不,有一个 version available对于正常工作的 Python 3,如果你真的需要 Qt,唯一
我正在尝试显示从二进制文件中读取的图像数据(我编写了用于从文件中检索此数据并将其存储为图像以供 QImage() 使用的代码)。我想做的是将 slider 连接到图形 View 小部件,以便当您移动
我已经准备了很多关于如何在 python 和 pyqt 中将多个信号连接到同一个事件处理程序的帖子。例如,将多个按钮或组合框连接到同一功能。 许多示例展示了如何使用 QSignalMapper 执行此
我有一个 PyQt 主窗口,当用户按下某个按钮时,我需要从中获取一串用户输入。 这是我的用户输入窗口代码: class InputDialog(QtGui.QDialog): ''' t
编辑: 以下 buildout.cfg 用于构建 Qt、PyQt 和 SIP [buildout] parts = pyqt [pyqt] recipe = zc.recipe.cmmi ur
我目前正在开发一个应用程序,该应用程序可以使用 PyQt 访问 sqlalchemy 数据库并将其内容显示到 TableView 或其他一些小部件中。现在为了简单起见,我们只说这是一个电话簿,上面有姓
使用我现在拥有的代码,我可以成功地播放文件中的 .mp3 数据。但是我需要使用 QtCore.QBuffer(不是来自文件)播放相同的数据。当我使用文档的示例时,它会出现意外类型的 QBuffer 错
安装 sip 后,我在尝试安装 PyQt-x11-gpl-4.11 时不断收到这个可爱的错误消息。 mycommandline$ python configure-ng.py --verbose Qu
我正在为一个项目使用 PyQt。但并非突然间我收到一个错误: QPixmap: It is not safe to use pixmaps outside the GUI thread in PyQt
我是一名优秀的程序员,十分优秀!