// 服务器 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();}

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