开发者

Segmentation fault in Qt application framework

开发者 https://www.devze.com 2023-01-01 05:35 出处:网络
this generates a segmentation fault becuase of \"QColor colorMap[9]\";.If I remove colorMap the segmentation fault goes away.开发者_如何学JAVA If I put it back.It comes back. If I do a clean all then

this generates a segmentation fault becuase of "QColor colorMap[9]";. If I remove colorMap the segmentation fault goes away.开发者_如何学JAVA If I put it back. It comes back. If I do a clean all then build all, it goes away. If I increase its arraysize it comes back. On the other hand if I reduce it it doesnt come back. I tired adding this array to another project and

What could be happening. I am really curious to know. I have removed everything else in that class. This widget subclassed is used to promote a widget in a QMainWindow.

class LevelIndicator : public QWidget  
{  
public:  
    LevelIndicator(QWidget * parent);  
    void paintEvent(QPaintEvent * event );  
    float percent;  
    QColor colorMap[9];  
    int NUM_GRADS;  
};  

the error happens inside ui_mainwindow.h at one of these lines:

    hpaFwdPwrLvl->setObjectName(QString::fromUtf8("hpaFwdPwrLvl"));

    verticalLayout->addWidget(hpaFwdPwrLvl);

I know i am not providing much but I will give alink to the app. Im trying to see if anyone has a quick answer for this.


If I do a clean all then build all, it goes away.

This makes it sound as though your build system isn't recognizing a dependency and that a change to that class definition isn't triggering a rebuild of something that should be recompiled when the definition changes.

Make sure class LevelIndicator is defined in exactly one place (generally that would be a header file that gets included by whatever modules need to use a LevelIndicator object). Also make sure that any global/static instances of LevelIndicator objects are following the one definition rule.


Firstly it might not be QColor, that may simply be changing the memory layout enough that a buffer overrun somewhere else triggers a segfault - try a different size QColor ..[1] for example.

Can QColor be used as an array like this, does it have the correct default ctor?

0

精彩评论

暂无评论...
验证码 换一张
取 消