[ROOT] TImage problem

From: Michal Lijowski (michal@cvu.wustl.edu)
Date: Fri May 09 2003 - 19:21:58 MEST


   Hello,

   Below is a short program which attempts to create an image from data
   in ASCII file (attached) and it crashes with segv. I am using root 3.05/4
   under RH Linux 9.0.

   I appreciate your attention and any help.

   Michal

   // TestTImage.cxx
//

#include <iostream>
#include <fstream>
#include <TROOT.h>
#include <TASImage.h>
#include <TVectorD.h>

using namespace std;

int main(int argc, char **argv)
{

// initialize  ROOT
    TROOT TestTImage("Test", "Test TImage");
    string infile = "this";
    ifstream infp(infile.c_str());
    if (infp == NULL) {
        cout << "  " << argv << " cannot open " << infile << endl;
        return 1;
    }
// create an array
    unsigned int NN = 40;
    double *arr = new double[NN * NN * sizeof(double)];
    double *lp = arr;
// loop through the file and read numbers

    int ii = 0;
    while (infp.good()) {
         infp >> *lp++;
         ii++;
    }
    infp.close();

    unsigned int NRows = NN * NN;
    TVectorD *data = new TVectorD(NRows);
    data -> SetElements(arr);
    cout << " Print data " << endl;
    data -> Print();

    TImage *TestImage1 = TImage::Create();
    if (!TestImage1) {
        cout << " Program " << argv << " cannot create an image .. " <<
endl;
        return 1;
    }
    TestImage1 -> SetImage(arr, NN, NN, 0);

    TImage *TestImage2 = TImage::Create();
    if (!TestImage2) {
        cout << " Program " << argv << " cannot create an image .. " <<
endl;
        return 1;
    }
    TestImage2 -> SetImage(*data, NRows, 0);

    return 0;
}

 *** Break *** segmentation violation
 Generating stack trace...
 0x401a3312 in TUnixSystem::StackTrace() + 0x202 from
/home/michal/cern/root/lib/libCore.so
 0x401a2114 in TUnixSystem::DispatchSignals(ESignals) + 0x104 from
/home/michal/cern/root/lib/libCore.so
 0x401a13c5 in <unknown> from /home/michal/cern/root/lib/libCore.so
 0x401a4be5 in <unknown> from /home/michal/cern/root/lib/libCore.so
 0x40e017c8 in <unknown> from /lib/tls/libpthread.so.0
 0x4152517c in TASImage::SetImage(double const*, unsigned, unsigned,
TImagePalette*) + 0x2c from /home/michal/cern/root/lib/libASImage.so
 0x08049644 in main + 0x444 from ./TestTImage
 0x420156a4 in __libc_start_main + 0xe4 from /lib/tls/libc.so.6
 0x08049171 in std::ios_base::Init::~Init [in-charge]() + 0x31 from
./TestTImage





This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET