RE: [ROOT] CINT - Debug mode

From: Meir Ron (meirr@tti-telecom.com)
Date: Tue Jul 24 2001 - 12:44:58 MEST


Hi rooters,
Hi Fons!

1) Thanks Fons for helping me.
2) I try the below suggestion but no succeed !

	(The problem was: 
		I'm using the CINT as an interpreter in my program:
		I handle it with a special class that send  commands to the
CINT.)

example code:
try
{
	G__init_cint((char*)"cint");        
	
	G__loadfile((char*)(source_file.c_str()));

	G__init_process_cmd();

      string command = " .debug";
	G__exec_text((char*)(command.c_str()));

	command = " .L ";
	command += source_file;
	G__exec_text((char*)(command.c_str()));

	command = " .b 13";		
	G__exec_text((char*)(command.c_str()));

      G__calc((char*)("counter();"));	

      G__scratch_all();      
    
}
catch(string &e)
{
	LogicError a("Error ocour: ",string(e),CRITICAL);
	throw a;
}

What I need is to debug the load file by sending command from the process.
Debugging from console (getting CINT prompt is not good for me!


Errors example that I received after run this example:

Warning: Illegal numerical expression .debug
FILE:C:\DOCUME~1\meirr\LOCALS~1\Temp\3 LINE:2
Warning: Illegal numerical expression .debug
FILE:C:\DOCUME~1\meirr\LOCALS~1\Temp\3 LINE:2
Warning: Illegal numerical expression .debug
FILE:C:\DOCUME~1\meirr\LOCALS~1\Temp\3 LINE:2
Error: unsigned can not be specified for float or double .debug
FILE:C:\DOCUME~1\meirr\LOCALS~1\Temp\3 LINE:2
!!!Dictionary position rewinded... !!!Error recovered!!!
Error: No symbol \test in current scope
FILE:C:\DOCUME~1\meirr\LOCALS~1\Temp\4 LINE:2
Error: Failed to evaluate \test.cc FILE:C:\DOCUME~1\meirr\LOCALS~1\Temp\4
LINE:2
!!!Dictionary position rewinded... !!!Error recovered!!!
Warning: Illegal numerical expression .b13
FILE:C:\DOCUME~1\meirr\LOCALS~1\Temp\5 LINE:2
-----Original Message-----
From: Meir Ron [mailto:meirr@uxsrvc.tti-telecom.com]
Sent: Monday, July 23, 2001 10:06 AM
To: 'roottalk@root.cern.ch'
Subject: [ROOT] CINT - Debug mode


Hi Fox

I have some difficulties with the debug mode.

I'm using the CINT as an interpreter in my program:
I handle it with a special class that send  commands to the CINT.
example:
Interpreter::Interpreter()
{
	int ret;
	ret = G__init_cint((char*)"cint");    // if(ret!=0)
}
Interpreter::~Interpreter()
{
	G__scratch_all();
}
long Interpreter::Exec(string text)
{
	return G__int(G__exec_text((char*)(text.c_str())));
}
long Interpreter::Calc(string funcname)
{
	return G__int(G__calc((char*)(funcname.c_str())));
}
void Interpreter::LoadFile(string filename)
{
	try{
	int ret;
	ret = G__loadfile((char*)(filename.c_str()));
	}catch(...){
		cerr << "BUG: Interpreter::LoadFile"<<endl;
	}
}

My propose is to switch the CINT to debug mode, set break points etz.
WITHOUT adding command to the script file which loaded.   (adding
G__pause()...  to the file is not good for me)
I tried to use G__process_cmd command but I didn't succeed!

I'll be thankful for any help!



Meir Ron 
Tel: +(972)-3-9269007 
Home: +(972)-3-9220847 
Email: meirr@tti-telecom.com <mailto:meirr@tti-telecom.com>



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:52 MET