Qt5.7 msvc2015 debugger don't work
-
Hi, I want to run my app in debug mode with Qt 5.7 and msvc2015 and I have a problem, debuger don't work. Please help me with this. I have installed newest Windows debugging tools from Windows SDK, but when I'm trying to debug my app, Error: The program has unexpectedly finished.
Scrrenshots from Qt Settings:
http://prntscr.com/bn53p9
http://prntscr.com/bn53nr
http://prntscr.com/bn53j4
http://prntscr.com/bn53fiThank you for any help :)
-
Hi,
Do you have any external dependency in your application ?
Did you install the latest updates of Visual Studio ?
-
It can debug other Qt app ?
-
Hi km2442,
if you can debug other applications, the error
The program has unexpectedly finished
my be caused by your application. This could be anything, from access to nullpointer over stack corruption to uncaught exceptions. Try to set a breakpoint as early as possible and narrow the error. -
-
As you asked, I'm sending my includes and fragment of main
My includes:
This file (funkcje.h) contains most of includes.#include <string> #include <sstream> #include <windows.h> #include <time.h> #include <thread> #include <shlobj.h> #include <winnls.h> #include <shobjidl.h> #include <objbase.h> #include <objidl.h> #include <shlguid.h> #include <atlbase.h> #include <QFileDialog> #include <QFile> #include <QStyleFactory> #include <QTimer> #include <QDebug> #include <QCloseEvent> #include <QDesktopServices> #include <QMenu> #include <QTableWidgetItem> #include <QSystemTrayIcon> #include <QSettings> #include <QTranslator> #include <QProcess> #include <QFileDialog> #include <QInputDialog> #include <QCryptographicHash>
And fragment of main.cpp (I don't know if something could be wrong here, I'm sending at least 30% of all coe from this file):
#include "mainwindow.h" #include "funkcje.h" int main(int argc, char *argv[]) { if (argc == 2) { (...) } } QtSingleApplication a(argc, argv); (...) QSettings myapp(QSettings::IniFormat, QSettings::UserScope, "AutoSwitch", "application"); appData = QFileInfo(myapp.fileName()).absolutePath(); QSettings setting(appData + "/config/settings.ini", QSettings::IniFormat); (...) QTranslator tra; if (setting.value("/Language").toInt() == 2) { if (tra.load(":/translations/Resources/Languages/English.qm")) { a.installTranslator(&tra); } } (...) MainWindow w; a.setActivationWindow(&w); w.setWindowFlags(Qt::MSWindowsFixedSizeDialogHint); QObject::connect(&a, SIGNAL(messageReceived(QString)) , &w, SLOT(onMessageReceived(QString))); if (hide == true && argc > 2) w.hide(); else w.show(); int ret = a.exec(); QObject::disconnect(&a, 0, &w, 0); return ret; }
-
Nothing obvious from the code you shared.
However, your settings handling is going to bite you when you release your application. Don't write data in the same folder as your application. If you install your application on Windows, your users won't have the rights to do so and even if they would, multiple users would access the same settings triggering security and privacy hazards. Use QStandardPaths to get a suitable path to store these files or simply let Qt handle it for you.
-
One more thing: My application is using one external library: Qtsingleapplication It is wrote for Qt4, so maybe there is a problem...?
@SGaist I store settings of my application in every user appdata folder, so settings are safe and separated :) One simple question about that, where should I store global settings of my app (where every user can access easly without administrator permissions)?
@sneubert Ok, I can share most of my mainwindow.h
One more info: I have placed breakpoint at first line of mainwindow.h before any code and again debugger crashed.#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include "funkcje.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); QSystemTrayIcon *trayIcon; void tray(); void showMainWindow(); ~MainWindow(); private slots: **I have deleted simple functions() without arguments** void onMessageReceived(const QString &message); void on_ActiveTasks_Tab_cellClicked(int row, int column); void iconActivated(QSystemTrayIcon::ActivationReason reason); void on_tabWidget_currentChanged(int index); private: Ui::MainWindow *ui; void MainWindow::closeEvent(QCloseEvent * event); void MainWindow::urywanie(bool u); void timeUpd(); bool TaskState(); Settings *settings; QMessageBox message; QMenu *trayIconMenu; QAction *exampleQAction_Tray; QMenu *exampleQmenu_Tray; }; #endif // MAINWINDOW_H
-
You should rather use the official QtSolution repo github is merely a mirror.
What do you mean by global settings ? Also what OS are you running ?
Are you sure that you have everything initialized before using anything ?
-
I have newest Windows 10 x64.
I need global settings for eg. when admin sets some tasks and turn on autorun on every account, so my app can run even without current user settings. But now I use stupid localisation of global settings files (C://myapp)Release version of my app works very well, so I believe that I initialised everything good.
-
AFAIK, that's rather the task of the registry.