From 81faaaa060255fed1bf5708bf299d9a3a829afe4 Mon Sep 17 00:00:00 2001 From: Zhang Qipeng Date: Thu, 28 Jan 2021 11:00:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=AD=A3=E5=B8=B8=E5=85=B3=E6=9C=BA?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=B4=A9=E6=BA=83=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 正常关机(程序正常退出)不应该记录崩溃次数。 Log: 修复任务栏异常进入安全模式的问题。 Change-Id: Ic4f96214ec6f097578d48fbe6e8e3de11aa279fd --- frame/main.cpp | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/frame/main.cpp b/frame/main.cpp index 278e8b849..0c63c038a 100644 --- a/frame/main.cpp +++ b/frame/main.cpp @@ -54,7 +54,6 @@ DCORE_USE_NAMESPACE DUTIL_USE_NAMESPACE #endif -const int MAX_STACK_FRAMES = 128; const QString g_cfgPath = QStandardPaths::standardLocations(QStandardPaths::ConfigLocation)[0] + "/dde-cfg.ini"; using namespace std; @@ -149,38 +148,6 @@ bool IsSaveMode() + QDateTime::currentDateTime().toString("[yyyy-MM-dd hh:mm:ss:zzz]") + "[crash signal number:" + QString::number(sig) + "]\n"; file->write(head.toUtf8()); - -#ifdef Q_OS_LINUX - void *array[MAX_STACK_FRAMES]; - size_t size = 0; - char **strings = nullptr; - size_t i; - signal(sig, SIG_DFL); - size = static_cast(backtrace(array, MAX_STACK_FRAMES)); - strings = backtrace_symbols(array, int(size)); - for (i = 0; i < size; ++i) { - QString line = QString::number(i) + " " + QString::fromStdString(strings[i]) + "\n"; - file->write(line.toUtf8()); - - std::string symbol(strings[i]); - QString strSymbol = QString::fromStdString(symbol); - int pos1 = strSymbol.indexOf("["); - int pos2 = strSymbol.lastIndexOf("]"); - QString address = strSymbol.mid(pos1 + 1,pos2 - pos1 - 1); - - // 按照内存地址找到对应代码的行号 - QString cmd = "addr2line -C -f -e " + qApp->applicationName() + " " + address; - QProcess *p = new QProcess; - p->setReadChannel(QProcess::StandardOutput); - p->start(cmd); - p->waitForFinished(); - p->waitForReadyRead(); - file->write(p->readAllStandardOutput()); - delete p; - p = nullptr; - } - free(strings); -#endif // __linux } catch (...) { // } @@ -201,7 +168,6 @@ int main(int argc, char *argv[]) DockApplication app(argc, argv); //崩溃信号 - signal(SIGTERM, sig_crash); signal(SIGSEGV, sig_crash); signal(SIGILL, sig_crash); signal(SIGINT, sig_crash);