Skip to content
Snippets Groups Projects
Commit 930ff968 authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

Further experimenting in Crash Handler

parent dbb02e93
No related branches found
No related tags found
No related merge requests found
......@@ -12,6 +12,10 @@ endif()
set(library_name BornAgainGUI)
if(BORNAGAIN_CRASHHADLER)
add_definitions(-DBORNAGAIN_CRASHHANDLER)
endif()
# --- source and include files ---
set(include_dirs
${CMAKE_CURRENT_SOURCE_DIR}/mainwindow
......
......@@ -50,7 +50,10 @@ void SimulationView::updateSimulationViewElements()
{
m_simulationSetupWidget->updateViewElements();
// m_quickSimulationWidget->updateViews(m_simulationSetupWidget->getInstrumentSelection(), m_simulationSetupWidget->getSampleSelection());
#ifdef BORNAGAIN_CRASHHANDLER
// Intentional memory corruption to make application crashing
delete reinterpret_cast<QString*>(0xFEE1DEAD);
#endif
}
void SimulationView::onChangeTabWidget(int index)
......
......@@ -30,20 +30,20 @@
//#include "crashhandler.h"
//#include "utils.h"
#include "crashhandler.h"
#include "utils.h"
//#include <QApplication>
//#include <QFile>
//#include <QProcess>
//#include <QString>
//#include <QStyle>
//#include <QTextStream>
//#include <QDebug>
#include <QApplication>
#include <QFile>
#include <QProcess>
#include <QString>
#include <QStyle>
#include <QTextStream>
#include <QDebug>
//#include <stdlib.h>
//#include <sys/types.h>
//#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <iostream>
......@@ -53,30 +53,30 @@
// Usage: $0 <name of signal causing the crash>
int main(int argc, char *argv[])
{
// QApplication app(argc, argv);
// app.setApplicationName(QLatin1String(APPLICATION_NAME));
// app.setWindowIcon(QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical));
// // Check usage.
// Q_PID parentPid = getppid();
// QString parentExecutable = QFile::symLinkTarget(QString::fromLatin1("/proc/%1/exe")
// .arg(QString::number(parentPid)));
// //if (argc > 2 || !parentExecutable.contains(QLatin1String("qtcreator"))) {
// if (argc > 2 ) {
// QTextStream err(stderr);
// err << QString::fromLatin1("This crash handler will be called by Qt Creator itself. "
// "Do not call this manually.\n");
// return EXIT_FAILURE;
// }
// // Run.
// CrashHandler *crashHandler = new CrashHandler(parentPid, app.arguments().at(1));
// crashHandler->run();
// return app.exec();
std::cout << "crashhandler::main() -> Hello World!" << std::endl;
QApplication app(argc, argv);
app.setApplicationName(QLatin1String(APPLICATION_NAME));
app.setWindowIcon(QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical));
// Check usage.
Q_PID parentPid = getppid();
QString parentExecutable = QFile::symLinkTarget(QString::fromLatin1("/proc/%1/exe")
.arg(QString::number(parentPid)));
//if (argc > 2 || !parentExecutable.contains(QLatin1String("qtcreator"))) {
if (argc > 2 ) {
QTextStream err(stderr);
err << QString::fromLatin1("This crash handler will be called by Qt Creator itself. "
"Do not call this manually.\n");
return EXIT_FAILURE;
}
// Run.
CrashHandler *crashHandler = new CrashHandler(parentPid, app.arguments().at(1));
crashHandler->run();
return app.exec();
// std::cout << "crashhandler::main() -> Hello World!" << std::endl;
return 0;
}
......
......@@ -26,8 +26,8 @@ set(include_files)
message("XXXXX ${BORNAGAIN_CRASHHADLER}")
if(BORNAGAIN_CRASHHADLER)
# list(APPEND source_files crashhandlersetup.cpp stacktracesetup.cpp)
# list(APPEND include_files crashhandlersetup.h stacktracesetup.h)
list(APPEND source_files crashhandlersetup.cpp stacktracesetup.cpp)
list(APPEND include_files crashhandlersetup.h stacktracesetup.h)
list(APPEND source_files stacktracesetup.cpp)
list(APPEND include_files stacktracesetup.h)
endif()
......
//#include "crashhandlersetup.h"
#include "crashhandlersetup.h"
#include "mainwindow.h"
#include "stacktracesetup.h"
#include <QApplication>
......@@ -12,26 +12,26 @@ int main(int argc, char *argv[])
// setupCrashHandler();
setupCrashHandler();
MainWindow w;
w.show();
#ifdef BORNAGAIN_CRASHHANDLER
std::cout << "BORNAGAIN_CRASHHANDLER" << std::endl;
StackTraceSetup s;
#endif
//#ifdef BORNAGAIN_CRASHHANDLER
// std::cout << "BORNAGAIN_CRASHHANDLER" << std::endl;
// StackTraceSetup s;
//#endif
// QVector<double> vector;
// double d = vector[0]+0.1;
// qDebug() << "main double:" << d;
return a.exec();
// return a.exec();
// const int r = a.exec();
const int r = a.exec();
// cleanupCrashHandler();
// return r;
cleanupCrashHandler();
return r;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment