Dear
can any one help me please:::
when I am writing nam in terminal window : segmentation fault is appear,
can any one tell me why?? note It is a new ns installing, my platform
(Ubuntu 14.04LTS 64bit, ns-2.35 , ns simulation normaly ...
in addition when I am run a simple tcl program, for example following
tcl program ns-simple.tcl:
?#?Create?
<https://www.facebook.com/hashtag/create?source=feed_text&story_id=10152410339444659>
a simulator object
set ns [new Simulator]
?#?Define?
<https://www.facebook.com/hashtag/define?source=feed_text&story_id=10152410339444659>
different colors for data flows (for NAM)
$ns color 1 Blue
$ns color 2 Red
?#?Open?
<https://www.facebook.com/hashtag/open?source=feed_text&story_id=10152410339444659>
the NAM trace file
set nf [open out.nam w]
$ns namtrace-all $nf
#Define a 'finish' procedure
proc finish {} {
global ns nf
$ns flush-trace
?#?Close?
<https://www.facebook.com/hashtag/close?source=feed_text&story_id=10152410339444659>
the NAM trace file
close $nf
?#?Execute?
<https://www.facebook.com/hashtag/execute?source=feed_text&story_id=10152410339444659>
NAM on the trace file
exec nam out.nam &
exit 0
}
#Create four nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
#Create links between the nodes
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail
?#?Set?
<https://www.facebook.com/hashtag/set?source=feed_text&story_id=10152410339444659>
Queue Size of link (n2-n3) to 10
$ns queue-limit $n2 $n3 10
?#?Give?
<https://www.facebook.com/hashtag/give?source=feed_text&story_id=10152410339444659>
node position (for NAM)
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right
?#?Monitor?
<https://www.facebook.com/hashtag/monitor?source=feed_text&story_id=10152410339444659>
the queue for link (n2-n3). (for NAM)
$ns duplex-link-op $n2 $n3 queuePos 0.5
?#?Setup?
<https://www.facebook.com/hashtag/setup?source=feed_text&story_id=10152410339444659>
a TCP connection
set tcp [new Agent/TCP]
$tcp set class_ 2
$ns attach-agent $n0 $tcp
set sink [new Agent/TCPSink]
$ns attach-agent $n3 $sink
$ns connect $tcp $sink
$tcp set fid_ 1
#Setup a FTP over TCP connection
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ftp set type_ FTP
#Setup a UDP connection
set udp [new Agent/UDP]
$ns attach-agent $n1 $udp
set null [new Agent/Null]
$ns attach-agent $n3 $null
$ns connect $udp $null
$udp set fid_ 2
#Setup a CBR over UDP connection
set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set type_ CBR
$cbr set packet_size_ 1000
$cbr set rate_ 1mb
$cbr set random_ false
?#?Schedule?
<https://www.facebook.com/hashtag/schedule?source=feed_text&story_id=10152410339444659>
events for the CBR and FTP agents
$ns at 0.1 "$cbr start"
$ns at 1.0 "$ftp start"
$ns at 4.0 "$ftp stop"
$ns at 4.5 "$cbr stop"
?#?Detach?
<https://www.facebook.com/hashtag/detach?source=feed_text&story_id=10152410339444659>
tcp and sink agents (not really necessary)
$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"
?#?Call?
<https://www.facebook.com/hashtag/call?source=feed_text&story_id=10152410339444659>
the finish procedure after 5 seconds of simulation time
$ns at 5.0 "finish"
?#?Print?
<https://www.facebook.com/hashtag/print?source=feed_text&story_id=10152410339444659>
CBR packet size and interval
puts "CBR packet size = [$cbr set packet_size_]"
puts "CBR interval = [$cbr set interval_]"
?#?Run?
<https://www.facebook.com/hashtag/run?source=feed_text&story_id=10152410339444659>
the simulation
$ns run
the out put messages in terminal as following:
CBR packet size = 1000
CBR interval = 0.0080000000000000002
-----------------
but wihout nam window???
After my search in ns-users (FAQ) I found this post in addition one of users in
2001 have same problem but without respons
Problem: namtrace-all causes segmentation fault on Linux and Solaris 2.6.
It's caused by sprintf's inability to handle null pointers in those systems.
Solution: Apply the following patch to ~ns-2/trace.cc:
--- trace.cc~ 1998/07/17 22:37:25
+++ trace.cc 1998/07/20 18:07:53
@@ -185,7 +185,7 @@
hdr_rtp *rh = (hdr_rtp*)p->access(off_rtp_);
hdr_srm *sh = (hdr_srm*)p->access(off_srm_);
- const char* sname = 0;
+ const char* sname = "null";
int t = th->ptype();
const char* name = pt_names[t];
@@ -413,7 +413,7 @@
hdr_cmn *th = (hdr_cmn*)p->access(off_cmn_);
hdr_ip *iph = (hdr_ip*)p->access(off_ip_);
hdr_srm *sh = (hdr_srm*)p->access(off_srm_);
- const char* sname = 0;
+ const char* sname = "null";
int t = th->ptype();
const char* name = pt_names[t];