> Your version of QtSerialPort is too very old (according to call-stack). 
> Please update to latest (e.g. to 5.3.2/5.3.3).

I'll try to upgrade then.  If that's all it is, that'd be great!
Sean

>> I’m getting a weird issue where I can repeatedly cause a crash to happen in 
>> QSerialPort if I attempt to close the 
>> serial port when I’m in a slot connected to the readyRead() signal, and I’m 
>> just wondering if I’m doing something 
>> weird.
>> 
>> I’ve got a class that inherits from QSerialPort.  I instantiate this object 
>> in the UI thread but immediately move it to a 
>> separate thread.  This object has a slot, disconnectFromDevice(), that sends 
>> a reset command to the serial device. 
>> 
>> So the way I intended the software to work is the user clicks the disconnect 
>> button in the UI thread, which sends a
>>  signal to the serial port object.  That object sends the reset command to 
>> the serial device and the serial device
>>  responds with an acknowledge response.  The acknowledge response triggers 
>> the QSerialPort::readyRead() signal, 
>>  which triggers my readyRead() slot.  I parse the acknowledge, then emit a 
>> signal back to the UI thread letting the
>>  UI know that the disconnect was successful, and then call 
>> QSerialPort::close() in the serial port object (still inside of 
>> my readyRead() slot).  
>> 
>> When I execute setup in a debug build, at this point the application crashes 
>> with a SIGSEV.  For some reason it kicks
>>  me into the disassembler instead of breaking in my code.  If I comment out 
>> the close() call, the segfault doesn’t 
>> happen. 
>>
>> Below is what’s shown in the call stack, but since none of my code is shown 
>> in the call stack, I don’t know if I’m
>>  crashing on the close() call itself, or if I crash sometime later because 
>> I’m doing something when the port isn’t 
>> open.  If I set a breakpoint anywhere in my readyRead() slot the crash 
>> DOESN’T occur.  I only know that removing 
>> the close() call removes the crash. 
>> 
>> Any ideas?  Specifically, why am I not seeing any of my calls in the call 
>> stack?
>> Sean
>> 
>> 0              ReadOverlappedCompletionNotifier::processCompletionRoutine    
>>         qserialport_win.cpp       188         0x6704e8ed
>> 1              AbstractOverlappedEventNotifier::event             
>> qserialport_win.cpp       119         
>> 2              QApplicationPrivate::notify_helper         qapplication.cpp   
>>             3467       0xa9ede0f
>> 3              QApplication::notify       qapplication.cpp               
>> 2888       0xa9eb72b          
>> 4              QCoreApplication::notifyInternal              
>> qcoreapplication.cpp      878         0x6b91b572
>> 5              QCoreApplication::sendEvent    qcoreapplication.h          
>> 232         0x6b9bee2b       
>> 6              QEventDispatcherWin32Private::activateEventNotifier  
>> qeventdispatcher_win.cpp         335         0x6b9646e8
>> 7              QEventDispatcherWin32::processEvents               
>> qeventdispatcher_win.cpp         759         
>> 8              QEventLoop::processEvents       qeventloop.cpp                
>> 136         
>> 9              QEventLoop::exec           qeventloop.cpp                212  
>>        
>> 10           QThread::exec  qthread.cpp       509         
>> 11           QThread::run     qthread.cpp       576         
>> 12           QThreadPrivate::start    qthread_win.cpp             347        
>>  
>> 13           msvcrt!_itow_s                C:\windows\syswow64\msvcrt.dll    
>>                        
>> 14           msvcrt!_endthreadex   C:\windows\syswow64\msvcrt.dll            
>>                
>> 15           KERNEL32!BaseCleanupAppcompatCacheSupport            
>> C:\windows\syswow64\kernel32.dll                       0x7594338a
>> 16           ??                                           
>> 17           ntdll!RtlpNtSetValueKey              
>> C:\windows\system32\ntdll.dll                 
>> 18           ??                                           
>> 19           ntdll!RtlpNtSetValueKey              
>> C:\windows\system32\ntdll.dll                 
>> 20           msvcrt!_endthreadex   C:\windows\syswow64\msvcrt.dll            
>>                
>> 21           ??           

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to