1 Mar 2008 06:29
[ROOT] Re: Root macro works on 5.16, bombs on 5.18
Tom Roberts <tjrob <at> fnal.gov>
2008-03-01 05:29:37 GMT
2008-03-01 05:29:37 GMT
More info from Linux (Fedora Core 8, Root 5.18):
It is rather difficult to debug this as my terminal does not echo what I
type when debugging (5.16 or 5.18). It does echo when I start up, load
the macro file, set a breakpoint in it, and run the macro function. The
macro opens a GUI window which I use to open a root file, select an
NTuple, enter "x" as the expression to histogram, and push the
CreatePlot button.
The macro executes to my breakpoint and I step to
TNtuple *nt = ntuples[0];
and ".p *nt" prints a full TNtuple (quite long -- appended below).
The next line of the macro is
printf("C1 expr_x='%s' nt=%08lX\n",expr_x,(long)nt);
and it correctly prints "C1 expr_x='x' nt=0A5256C0". In particular note
that nt is not NULL, and we agree on the address: 0x0A5256C0=173168320.
The next line of the macro is
printf("C1 nt->Nvar=%d\n",nt->GetNvar());
The command ".s" prints "!!!Calling compiled function GetNvar()"
followed by a blank line. Another ".s" command prints:
*** Break *** segmentation violation
... very long stack trace also appended below
This sure looks like a Cint problem to me -- I don't see how an
interpreted macro could possibly screw things up like that. Unless, of
course, nt does not really point to a TNtuple; but in that case how does
it work in 5.16?
(Continue reading)
RSS Feed