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();
}

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

浙公网安备 33010602011771号