Re: [ROOT] Macros with parameters

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Sep 11 2000 - 21:30:31 MEST


Hi Victor,
My guess is that you have a scoping problem.
Are you creating objects on the stack (not via new).
These objects are automatically deleted when you leave the function.
May I suggest the following:
Instead of void AMUAnalysis(int triggerType) {
have only {   (unnamed script)
In this case, the objects craeted on the stack will not be removed at the
end of execution.
If you run on a Unix system, could you run Root under gdb and let me
know the traceback. Do:
  gdb root.exe
  gdb > r
  ...   
  ... at the crash, do:
  gdb > info stack

And send me the output of the info stack command.

Rene Brun


On Thu, 7 Sep 2000, Victor Ikonnikov wrote:

> Hi, all!
> 
> I've got a problem running macro with parameters.
> If i call ".x AMUAnalysis.C(0)" from ROOT prompt
> and have  "void AMUAnalysis(int triggerType) {"
> inside the macro, it does everything it should,
> but at the very end of execution i have 
> "That's all, folks!
> 
>  *** Break *** segmentation violation
> Root > Function AMUAnalysis() busy flag cleared"
> message. The macro ends with the following lines:
> "  cout<< "That's all, folks!"<<endl;
> 
> }"
> So i have no idea where and why it crashes.
> If i declare parameter(s) inside the macro,i.e.
> run just ".x AMUAnalysis.C" everything' fine.
> And this doesn't depend on the number of type of parameters.
> Does anybody knows what could it be?
> 
> Sincerely yours,
> Victor
> 
> 



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