In ns2, if you ever encounter a error like "bailing in Tcl::eval", then it could be due the size of the buffer that Tcl:: eval may offer
By default the buffer size is 1024 and it can be increased to 2048 (for example)
Usually this error will be encountered when you increase the number of nodes in the simulation (for example more than 100 nodes might give you this error)
How to overcome this error? Here is a small workaround
Open the command prompt and go the ns-allinone-2.35/tclcl-1.xx/ folder and open the file Tcl.cc
$] cd ns-allinone-2.35/tclcl-1.20/Tcl.cc (in my case)
in the following function (Line number: 202, change 1024 to 2048) as shown below
void Tcl::eval()
{
char* p = bp_;
bp_ = p + strlen(p) + 1;
/*XXX*/
if (bp_ >= &buffer_[2048]) {
fprintf(stderr, "bailing in Tcl::eval\n");
assert(0);
exit(1);
}
eval(p);
bp_ = p;
}
Once the changes are made, reinstall ns2 itself
$] cd ns-allinone-2.35/
$] ./install
T S Pradeep Kumar
By default the buffer size is 1024 and it can be increased to 2048 (for example)
Usually this error will be encountered when you increase the number of nodes in the simulation (for example more than 100 nodes might give you this error)
bailing in Tcl::eval |
Open the command prompt and go the ns-allinone-2.35/tclcl-1.xx/ folder and open the file Tcl.cc
$] cd ns-allinone-2.35/tclcl-1.20/Tcl.cc (in my case)
in the following function (Line number: 202, change 1024 to 2048) as shown below
void Tcl::eval()
{
char* p = bp_;
bp_ = p + strlen(p) + 1;
/*XXX*/
if (bp_ >= &buffer_[2048]) {
fprintf(stderr, "bailing in Tcl::eval\n");
assert(0);
exit(1);
}
eval(p);
bp_ = p;
}
Once the changes are made, reinstall ns2 itself
$] cd ns-allinone-2.35/
$] ./install
T S Pradeep Kumar
Comments
Post a Comment