Hi Michal,
Most graphics applications require a TApplication to be created.
Look at the file in the attachement. I also fixed another problem
when building your second image.
Rene Brun
On Fri, 9
May 2003, Michal Lijowski wrote:
>
> 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