[SOLVED] debug error r6010 abort has been called while running perfectly



  • I am trying to generate QWTspectrogram using a file. there are 500 binary files to show an annimation with a slider in UI. the program works fine but sometimes it gives "debug error r6010 abort has been called" error and crashes on any random occasion I have no idea why this shows up because it is random however it depends on the change in fnum as slider moves but not at any fixed value or time(it does not appear at stationary condition). below is the code for my program

    setAlpha is changed with the change in slider of UI.

    @ void Plot::setAlpha( int alpha )

    {
    
        fnum=alpha;
    
        d_spectrogram->setData( new mydata(fnum,dial) );
    
        d_spectrogram->attach( this );
    
        replot();
    
    }
    
    
    class mydata: public QwtRasterData
    
    {
    
        typedef signed short int sBYTE;
    
        char filepath[35]; 
    
        sBYTE *fileBuf;    
    
        FILE *file = NULL; 
    
    public:
    
    
    
    mydata(int fnum, int dial)
    
        {
    
        setInterval( Qt::XAxis, QwtInterval( 0, (area)-1 ) );
    
        setInterval( Qt::YAxis, QwtInterval( 0, (area)-1 ) );
    
        setInterval( Qt::ZAxis, QwtInterval( -dial, dial ) );
    
    
    
        {
    
             sprintf_s(filepath, "c:/mydata/dfile%d.bin", fnum);
    
             fopen_s(&file,filepath, "rb");
    
             long fileSize = getFileSizex(file);
    
             fileBuf = new sBYTE[fileSize];
    
             fread(fileBuf, fileSize, 1, file);
    
             fclose(file);
    
    
         }
    
        }
    
        virtual double value( double x, double y ) const
    
        {
    
    
    
        int x_pos = static_cast<int>(x);
    
        int y_pos = static_cast<int>(y);
    
        const double c =  (fileBuf[ ((x_pos)+((area-y_pos)*area))]);
    
        return c;
    
        }
    

    }@



  • Hi,

    It looks like you have an uncaught exception. Have you tried to catch it?



  • i am new to c++ and really dont know what it means. please guide how to track it.



  • If you're new to exceptions in c++, you should read the following "tutorial":http://www.cplusplus.com/doc/tutorial/exceptions/.


  • Lifetime Qt Champion

    Hi,

    Also, since you are using Qt, why don't you make use of QString/QFile/QByteArray ?



  • thank you SGiast :) it is working now

    QFile myfile;
    myfile.setFileName("c:/file.bin");
    if(!myfile.open(QIODevice::ReadOnly)) return;

    QDataStream data(&myfile);
    data.setByteOrder(QDataStream::LittleEndian);
    QVector<qint16> result;
    while(!data.atEnd()) {
    qint16 x;
    data >> x;
    result.append(x);
    }


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.