Re: [ROOT] ShowStreamerInfo on Win32

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Dec 26 2000 - 17:59:13 MET


Hi Dave,
Thanks for reporting this problem with ShowStreamerInfo under NT.
It is now fixed in the CVS source.

Rene Brun

On Mon, 25 Dec 2000, Dave Casper wrote:

> 
> 	Hi,
> 
> I have generated a root file using Root3.0, including the "+" after each of
> my classes in the LinkDef.h files.
> 
> I try to open the file in interactive root and use the ShowStreamerInfo()
> method (as explained in the documentation for the new i/o features); I get
> an access violation trying to read from address 0x00000000.
> ShowStreamerInfo prints information for a couple classes before it crashes.
> Without making a debug version of the root libraries (which I guess I could
> do if I had to), it's not easy to tell exactly what the problem is.  I have
> tried it with and without loading the dll which is built for my custom
> classes before calling ShowStreamerInfo, and it doesn't make any difference.
> 
> I have tried using the other example in the documentation:
> 
> gROOT->GetClass(...)->GetStreamerInfo(1)->ls()
> 
> This appears to give a reasonable result for all my classes.
> 
> A simplified view of what is written in the file is:
> 
> TEvent (a tree with a single branch, which contains:)
>    Int_t runNumber
>    Int_t eventNumber
>    Double_t time
>    TEventData eventData
> 
> TEventData is derived from TFolder and has no data members of its own, per
> se. However the TList* data member it inherits from TFolder can contain a
> number of other object types.  ShowStreamerInfo prints a line for all of the
> above, through TEventData and then crashes.  GetStreamerInfo()->ls() for
> TEvent and TEventData seem to be reasonable.
> 
> As an unrelated aside, I also get a warning message:
> 
> Warning in <TWinNTSystem::SetProgname>: Wrong Program path
> 
> when I run root 3.0, unless I launch the program giving the full path name
> and .exe extension on the command line.  Normally, I set my PATH to point to
> the directory (%ROOTSYS%\bin) where the root executable is.  If I run the
> program by typing the command "root", I get the above warning.  If and only
> if I run the program with the command:
> 
> "c:\cern\myroot\Root3.0\root\bin\root.exe"
> 
> (which is the full path), I do not get the above warning.  It looks like
> TWinNTSystem::SetProgname is supposed to handle the first case (implicit
> path), but apparently something in the logic isn't working.  I'm not sure
> what difference, if any, having the wrong program path would have (i.e. if
> the warning can be ignored).
> 
> Thanks for any help,
> 
> Dave
> dcasper@uci.edu
> 



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:40 MET