qt报错

    // 服务器 IP 端口 路径 
    string ip =  ui->ipEdit->text().toStdString();
    string root = ui->pathEdit->text().toStdString();
    int port = ui->portBox->value();
    XDiskClient *client = XDiskClient::Get();
    client->set_server_ip(ip);
    client->set_server_port(port);
    client->set_server_root(root);
[New Thread 37568.0x9e9c]
warning: HEAP[xdisk_gui.exe]: 
warning: Invalid address specified to RtlFreeHeap( 000001AAE35E0000, 000001AAE4F50470 )

Thread 1 received signal SIGTRAP, Trace/breakpoint trap.
0x00007ff83f418c27 in ntdll!RtlSetProcessPreferredUILanguages () from C:\WINDOWS\SYSTEM32\ntdll.dll                          
(gdb) bt
#0  0x00007ff83f418c27 in ntdll!RtlSetProcessPreferredUILanguages () from C:\WINDOWS\SYSTEM32\ntdll.dll                      
#1  0x00007ff83f426222 in ntdll!RtlValidateHeap () from C:\WINDOWS\SYSTEM32\ntdll.dll                                        
#2  0x00007ff83f427ae4 in ntdll!RtlSizeHeap () from C:\WINDOWS\SYSTEM32\ntdll.dll                                            
#3  0x00007ff83f415bcc in ntdll!RtlAllocateHeap () from C:\WINDOWS\SYSTEM32\ntdll.dll                                        
#4  0x00007ff83f495930 in ntdll!RtlFreeHeap () from C:\WINDOWS\SYSTEM32\ntdll.dll                                            
#5  0x00007ff83ceee0fb in ucrtbase!_free_base () from C:\WINDOWS\System32\ucrtbase.dll                                       
#6  0x00007ff611fa4ad2 in QArrayDataPointer<char>::~QArrayDataPointer (this=0x283c9fb470)
    at D:/Software/Qt/6.6.3/mingw_64/include/QtCore/qarraydatapointer.h:104
#7  0x00007ff611fa3c18 in QByteArray::~QByteArray (this=0x283c9fb470)
--Type <RET> for more, q to quit, c to continue without paging--
    at D:/Software/Qt/6.6.3/mingw_64/include/QtCore/qbytearray.h:521
#8  0x00007ff611fa6254 in QString::toStdString[abi:cxx11]() const (this=0x283c9fb510)
    at D:/Software/Qt/6.6.3/mingw_64/include/QtCore/qstring.h:1318
#9  0x00007ff611fa1882 in Widget::Refresh (this=0x283c9ff6e0) at D:/Github/CloudDriver/xdisk_gui/widget.cpp:27               
#10 0x00007ff611fa148f in Widget::qt_static_metacall (_o=0x283c9ff6e0, _c=QMetaObject::InvokeMetaMethod, _id=0, 
    _a=0x283c9fb710) at D:/Github/CloudDriver/cmake-build-debug/xdisk_gui/xdisk_gui_autogen/EWIEGA46WW/moc_widget.cpp:119    
#11 0x00007fff86da5b93 in doActivate<false> (sender=sender@entry=0x1aae4f00b10, signal_index=9, 
    argv=argv@entry=0x283c9fb710) at C:/Users/qt/work/qt/qtbase/src/corelib/kernel/qobject.cpp:4051
#12 0x00007fff86af0453 in QMetaObject::activate (sender=sender@entry=0x1aae4f00b10,                                          
--Type <RET> for more, q to quit, c to continue without paging--
    m=m@entry=0x7fff868cc3c0 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2,
    argv=argv@entry=0x283c9fb710) at C:/Users/qt/work/qt/qtbase/src/corelib/kernel/qobject.cpp:4099
#13 0x00007fff864d5d85 in QAbstractButton::clicked (_t1=<optimized out>, this=0x1aae4f00b10)
    at C:/Users/qt/work/qt/qtbase_build/src/widgets/Widgets_autogen/include/moc_qabstractbutton.cpp:408                      
#14 QAbstractButtonPrivate::emitClicked (this=0x1aae4f00130)
    at C:/Users/qt/work/qt/qtbase/src/widgets/widgets/qabstractbutton.cpp:379
#15 0x00007fff864d74e4 in QAbstractButtonPrivate::click (this=0x1aae4f00130)                                                 
    at C:/Users/qt/work/qt/qtbase/src/widgets/widgets/qabstractbutton.cpp:372
#16 0x00007fff864d7710 in QAbstractButton::mouseReleaseEvent (this=0x1aae4f00b10, e=0x283c9fbe90)

 std::string  
str=(const char*)qstr.toLocal8bit();  
    // 服务器 IP 端口 路径 
    string ip = (const char*)ui->ipEdit->text().toLocal8Bit();
    string root = (const char*)ui->pathEdit->text().toLocal8Bit();
    int port = ui->portBox->value();
    XDiskClient *client = XDiskClient::Get();
    client->set_server_ip(ip);
    client->set_server_port(port);
    client->set_server_root(root);

Thread 1 received signal SIGTRAP, Trace/breakpoint trap.
0x00007ff83f418c27 in ntdll!RtlSetProcessPreferredUILanguages () from C:\WINDOWS\SYSTEM32\ntdll.dll
(gdb) bt
#0  0x00007ff83f418c27 in ntdll!RtlSetProcessPreferredUILanguages () from C:\WINDOWS\SYSTEM32\ntdll.dll                
#1  0x00007ff83f426222 in ntdll!RtlValidateHeap () from C:\WINDOWS\SYSTEM32\ntdll.dll                                  
#2  0x00007ff83f427ae4 in ntdll!RtlSizeHeap () from C:\WINDOWS\SYSTEM32\ntdll.dll                                      
#3  0x00007ff83f415bcc in ntdll!RtlAllocateHeap () from C:\WINDOWS\SYSTEM32\ntdll.dll
#4  0x00007ff83f495930 in ntdll!RtlFreeHeap () from C:\WINDOWS\SYSTEM32\ntdll.dll                                      
#5  0x00007ff83ceee0fb in ucrtbase!_free_base () from C:\WINDOWS\System32\ucrtbase.dll                                 
#6  0x00007ff7615e4b32 in QArrayDataPointer<char>::~QArrayDataPointer (this=0x64fa3fb5b0)
    at D:/Software/Qt/6.6.3/mingw_64/include/QtCore/qarraydatapointer.h:104
#7  0x00007ff7615e3c78 in QByteArray::~QByteArray (this=0x64fa3fb5b0)
--Type <RET> for more, q to quit, c to continue without paging--
    at D:/Software/Qt/6.6.3/mingw_64/include/QtCore/qbytearray.h:521
#8  0x00007ff7615e18ba in Widget::Refresh (this=0x64fa3ff7d0) at D:/Github/CloudDriver/xdisk_gui/widget.cpp:27
#9  0x00007ff7615e148f in Widget::qt_static_metacall (_o=0x64fa3ff7d0, _c=QMetaObject::InvokeMetaMethod, _id=0, 
    _a=0x64fa3fb800)
    at D:/Github/CloudDriver/cmake-build-debug/xdisk_gui/xdisk_gui_autogen/EWIEGA46WW/moc_widget.cpp:119
#10 0x00007fff86e05b93 in doActivate<false> (sender=sender@entry=0x1f74c612b80, signal_index=9, 
    argv=argv@entry=0x64fa3fb800) at C:/Users/qt/work/qt/qtbase/src/corelib/kernel/qobject.cpp:4051
#11 0x00007fff86b50453 in QMetaObject::activate (sender=sender@entry=0x1f74c612b80,                                    
    m=m@entry=0x7fff8692c3c0 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2,


void Widget::Refresh()
{
    // QMessageBox::information(this,"","Refresh");

    // 服务器 IP 端口 路径
    // QString ip = ui->ipEdit->text();

    // 报错
    // const char* ip = (const char*) ui->ipEdit->text().toStdString().data();
    // cout << ip << endl;

    // if (ip.isEmpty()){
    //     cout << "请输入服务器 IP" << endl;
    // }else{
    //     for (int i = 0; i < ip.size(); i++){
    //         cout << ip[i].toLatin1();
    //     }
    //     cout << endl;
    // }

    // cout << ip.toUtf8().constData() << endl; 报错 0x00007ff611fa3c18 in QByteArray::~QByteArray (this=0x283c9fb470)
    // cout << ip.toStdString() << endl; 报错
    // cout << ip.toLocal8Bit().constData() << endl; 报错

    // 报错
    // QByteArray utf8Data = ip.toUtf8(); // 显示保存
    // cout << utf8Data.constData() << endl;

    // 报错
    // QString ip2 = ip;
    // cout << ip2.toStdString() << endl;



    // string root = ui->pathEdit->text().toUtf8().constData();
    // int port = ui->portBox->value();
    XDiskClient *client = XDiskClient::Get();
    // client->set_server_ip(ip);
    // client->set_server_port(port);
    // client->set_server_root(root);



    // 1. 连接服务器

    // 2. 设置回调(NIO)
    client->GetDir();

}

image

解决:把编译链换成Qt配套的全都正常了

苦笑.jpg

posted @ 2025-08-07 22:28  丘狸尾  阅读(16)  评论(0)    收藏  举报