“程序已停止工作”但它正常工作

时间:2014-04-27 12:23:35

标签: c++ windows qt crash

我有一个非常奇怪的问题。原始程序工作正常,但现在程序的一个小更新正在崩溃单个用户,但它适用于其他所有人。

基本上,一旦他启动程序,他就会收到Windows的错误消息“程序X已停止工作”和转储:

  

问题事件名称:APPCRASH
  应用程序名称:programname.exe
  应用版本:0.0.0.1
  申请时间戳:535ceb8c
  故障模块名称:programname.exe
  故障模块版本:0.0.0.1
  故障模块时间戳:535ceb8c
  例外代码:c000001d
  例外抵消:004a5542
  操作系统版本:6.1.7601.2.1.0.768.3
  地区ID:2057
  附加信息1:ac38
  附加信息2:ac387466df76c7f98f034212b24686d7
  附加信息3:23ca
  附加信息4:23cafe810bbb46d87a7f0938a06eb3ea

一旦他关闭错误对话框,程序就会正常启动并且没有任何问题。没有其他人有这个问题,所以我怀疑它可能也与操作系统/设置有关。

该程序甚至没有做任何事情(在启动时)它只是一个简单的UI。所以它在我的实际代码之前就崩溃了。

内置: -Qt 5.1.0 -msvc 2010 -guest OS是Windows 7

可能执行的代码:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.setWindowIcon(QIcon(":/favicon.ico"));
    w.setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint);
    w.show();
    return a.exec();
}

Mainwindow构造函数:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->tabWidget->setCurrentIndex(0);

    isStartupUpdate=true;
    ismax=false;
}

有关如何处理和调试此问题的指南?

1 个答案:

答案 0 :(得分:-1)

我刚刚在c#

上发生了同样的事情

我添加了Debugger.Break();,这就是它显示应用程序停止工作的地方。据我所知,这不应该发生。

我改为

#if DEBUG 
Debugger.Break();
#endif

解决此问题&现在有效了