qmlplugindump: Remove sigsegv handler

It's not safe to use printf and memory allocations
in a signal handler.

Task-number: QTBUG-70460
Change-Id: I2a4caf302e17992471575bd89faa505a8db4a7e3
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This commit is contained in:
Kai Koehne 2018-10-11 09:14:51 +02:00
parent 453a3806a3
commit 7ca32bc41c
1 changed files with 0 additions and 25 deletions

View File

@ -66,9 +66,6 @@
#include <QtGui/private/qsimulatorconnection_p.h>
#endif
#ifdef Q_OS_UNIX
#include <signal.h>
#endif
#ifdef Q_OS_WIN
# if !defined(Q_CC_MINGW)
# include <crtdbg.h>
@ -731,17 +728,6 @@ enum ExitCode {
EXIT_IMPORTERROR = 3
};
#ifdef Q_OS_UNIX
void sigSegvHandler(int) {
fprintf(stderr, "Error: SEGV\n");
if (!currentProperty.isEmpty())
fprintf(stderr, "While processing the property '%s', which probably has uninitialized data.\n", currentProperty.toLatin1().constData());
if (!inObjectInstantiation.isEmpty())
fprintf(stderr, "While instantiating the object '%s'.\n", inObjectInstantiation.toLatin1().constData());
exit(EXIT_SEGV);
}
#endif
void printUsage(const QString &appName)
{
std::cerr << qPrintable(QString(
@ -964,17 +950,6 @@ int main(int argc, char *argv[])
#endif // Q_OS_WIN && !Q_CC_MINGW
// The default message handler might not print to console on some systems. Enforce this.
qInstallMessageHandler(printDebugMessage);
#ifdef Q_OS_UNIX
// qmldump may crash, but we don't want any crash handlers to pop up
// therefore we intercept the segfault and just exit() ourselves
struct sigaction sigAction;
sigemptyset(&sigAction.sa_mask);
sigAction.sa_handler = &sigSegvHandler;
sigAction.sa_flags = 0;
sigaction(SIGSEGV, &sigAction, nullptr);
#endif
#ifdef QT_SIMULATOR
// Running this application would bring up the Qt Simulator (since it links Qt GUI), avoid that!