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