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