2017-05-23 1 views
0

J'utilise QT5.8 et visual studio 2015 sur win10 pour contrôler un port série. Le code minimal suivant se bloque dans Visual Studio (mais seulement dans le débogage, la version fonctionne bien) après la visualisation des messages, donc quand l'objet QList infos est détruit, quelqu'un peut-il expliquer pourquoi?QSerialPortInfo déboguer crash studio visuel 2015 + QT5.8

#include <iostream> 
#include <QtSerialPort/QSerialPortInfo> 

void showPorts() { 
    QList<QSerialPortInfo> infos = QSerialPortInfo::availablePorts(); 
    for (const QSerialPortInfo &info : infos) { 
     std::cout << " detected port : " << info.portName().toStdString() << std::endl; 
    } 
} // this code CRASHES HERE only in debug ! 


int main (int argc, char** argv){ 
    std::cout<<"\n >>> test serial info <<< \n\n"<<std::endl; 

    showPorts(); 

    std::cout << "\n >>> Finished, press enter to exit <<< \n\n" << std::endl; 
    std::cin.get(); 

    return 0; 
} 

Répondre

0

J'ai testé votre code et je n'ai pas de crash.

PS: Windows 10x64, MSVC2015, Qt 5.8.0 32 bits

+0

Merci d'avoir essayé, j'ai win10 et qt 64 bits, MSVC apporte à \ delete_scalar.cpp et sortie donne à moi: HEAP [test_serialInfo.exe]: adresse non valide spécifiée à RtlValidateHeap (0000025A01D70000, 0000025A01D9D540) test_serialInfo.exe a déclenché un point d'arrêt. Le programme '[8236] test_serialInfo.exe' s'est terminé avec le code 0 (0x0). –

+0

Pouvez-vous vérifier s'il se termine correctement? –

+0

Maintenant, j'ai vérifié avec Qt 5.8.0 64bit, MSVC2015, Windows10x64, et je n'ai pas de crash. – user3074135