[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ns] Segmentation fault-help needed urgently
My guess is that the snoop.c patch may have created a problem in ns.
Try using the "where" command in gdb to locate where the crash happened/
% gdb ns core
then type where at the gdb prompt.
- John Mehringer
Frank wrote:
>
> Hi,every ns expert,
> Sorry for disturbing every one.Recently I install ns-allinone-2.1b8a on
> the platform of Linux red Hat version 7.0. I patch the snoop.cc and
> vlan.tcl.After installation, I validate the ns2, all the test passed
> excepting two warnings.Then I run the example come from the ns2 itself.
> the script as follow,
>
> =====================================================================
>
> #
> # wireless2.tcl
> # simulation of a wired-cum-wireless scenario consisting of 2 wired nodes
> # connected to a wireless domain through a base-station node.
> # ======================================================================
> # Define options
> # ======================================================================
> set opt(chan) Channel/WirelessChannel ;# channel type
> set opt(prop) Propagation/TwoRayGround ;# radio-propagation
> model
> set opt(netif) Phy/WirelessPhy ;# network interface
> type
> set opt(mac) Mac/802_11 ;# MAC type
> set opt(ifq) Queue/DropTail/PriQueue ;# interface queue type
> set opt(ll) LL/LLSnoop ;# link layer type
> #set opt(ll) LL
> set opt(ant) Antenna/OmniAntenna ;# antenna model
> set opt(ifqlen) 50 ;# max packet in ifq
> set opt(nn) 3 ;# number of
> mobilenodes
> set opt(adhocRouting) DSDV ;# routing protocol
>
> set opt(cp) "" ;# connection pattern
> file
> set
> opt(sc) "../tcl/mobility/scene/scen-3-test" ;#
> node movement file.
>
> set opt(x) 670 ;# x coordinate of topology
> set opt(y) 670 ;# y coordinate of topology
> set opt(seed) 0.0 ;# seed for random number
> gen.
> set opt(stop) 250 ;# time to stop simulation
>
> set opt(ftp1-start) 160.0
> set opt(ftp2-start) 170.0
>
> set num_wired_nodes 2
> set num_bs_nodes 1
>
> #
> ============================================================================
> # check for boundary parameters and random seed
> if { $opt(x) == 0 || $opt(y) == 0 } {
> puts "No X-Y boundary values given for wireless topology\n"
> }
> if {$opt(seed) > 0} {
> puts "Seeding Random number generator with $opt(seed)\n"
> ns-random $opt(seed)
> }
>
> # create simulator instance
> set ns_ [new Simulator]
>
> # set up for hierarchical routing
> $ns_ node-config -addressType hierarchical
> AddrParams set domain_num_ 2 ;# number of domains
> lappend cluster_num 2 1 ;# number of clusters in each
> domain
> AddrParams set cluster_num_ $cluster_num
> lappend eilastlevel 1 1 4 ;# number of nodes in each cluster
> AddrParams set nodes_num_ $eilastlevel ;# of each domain
>
> set tracefd [open wireless2-out.tr w]
> set namtrace [open wireless2-out.nam w]
> $ns_ trace-all $tracefd
> $ns_ namtrace-all-wireless $namtrace $opt(x) $opt(y)
>
> # Create topography object
> set topo [new Topography]
>
> # define topology
> $topo load_flatgrid $opt(x) $opt(y)
>
> # create God
> create-god $opt(nn)
>
> #create wired nodes
> set temp {0.0.0 0.1.0} ;# hierarchical addresses for wired domain
> for {set i 0} {$i < $num_wired_nodes} {incr i} {
> set W($i) [$ns_ node [lindex $temp $i]]
> }
>
> # configure for base-station node
> $ns_ node-config -adhocRouting $opt(adhocRouting) \
> -llType $opt(ll) \
> -macType $opt(mac) \
> -ifqType $opt(ifq) \
> -ifqLen $opt(ifqlen) \
> -antType $opt(ant) \
> -propType $opt(prop) \
> -phyType $opt(netif) \
> -channelType $opt(chan) \
> -topoInstance $topo \
> -wiredRouting ON \
> -agentTrace ON \
> -routerTrace OFF \
> -macTrace OFF
>
> #create base-station node
> set temp {1.0.0 1.0.1 1.0.2 1.0.3} ;# hier address to be used for
> wireless
> ;# domain
> set BS(0) [$ns_ node [lindex $temp 0]]
> $BS(0) random-motion 0 ;# disable random motion
>
> #provide some co-ord (fixed) to base station node
> $BS(0) set X_ 1.0
> $BS(0) set Y_ 2.0
> $BS(0) set Z_ 0.0
>
> # create mobilenodes in the same domain as BS(0)
> # note the position and movement of mobilenodes is as defined
> # in $opt(sc)
>
> #configure for mobilenodes
> $ns_ node-config -wiredRouting OFF
>
> for {set j 0} {$j < $opt(nn)} {incr j} {
> set node_($j) [ $ns_ node [lindex $temp \
> [expr $j+1]] ]
> $node_($j) base-station [AddrParams addr2id \
> [$BS(0) node-addr]]
> }
>
> #create links between wired and BS nodes
>
> $ns_ duplex-link $W(0) $W(1) 5Mb 2ms DropTail
> $ns_ duplex-link $W(1) $BS(0) 5Mb 2ms DropTail
>
> $ns_ duplex-link-op $W(0) $W(1) orient down
> $ns_ duplex-link-op $W(1) $BS(0) orient left-down
>
> # setup TCP connections
> set tcp1 [new Agent/TCP]
> $tcp1 set class_ 2
> set sink1 [new Agent/TCPSink]
> $ns_ attach-agent $node_(0) $tcp1
> $ns_ attach-agent $W(0) $sink1
> $ns_ connect $tcp1 $sink1
> set ftp1 [new Application/FTP]
> $ftp1 attach-agent $tcp1
> $ns_ at $opt(ftp1-start) "$ftp1 start"
>
> set tcp2 [new Agent/TCP]
> $tcp2 set class_ 2
> set sink2 [new Agent/TCPSink]
> $ns_ attach-agent $W(1) $tcp2
> $ns_ attach-agent $node_(2) $sink2
> $ns_ connect $tcp2 $sink2
> set ftp2 [new Application/FTP]
> $ftp2 attach-agent $tcp2
> $ns_ at $opt(ftp2-start) "$ftp2 start"
>
> # source connection-pattern and node-movement scripts
> if { $opt(cp) == "" } {
> puts "*** NOTE: no connection pattern specified."
> set opt(cp) "none"
> } else {
> puts "Loading connection pattern..."
> source $opt(cp)
> }
> if { $opt(sc) == "" } {
> puts "*** NOTE: no scenario file specified."
> set opt(sc) "none"
> } else {
> puts "Loading scenario file..."
> source $opt(sc)
> puts "Load complete..."
> }
>
> # Define initial node position in nam
>
> for {set i 0} {$i < $opt(nn)} {incr i} {
>
> # 20 defines the node size in nam, must adjust it according to your
> # scenario
> # The function must be called after mobility model is defined
>
> $ns_ initial_node_pos $node_($i) 20
> }
>
> # Tell all nodes when the simulation ends
> for {set i } {$i < $opt(nn) } {incr i} {
> $ns_ at $opt(stop).0 "$node_($i) reset";
> }
> $ns_ at $opt(stop).0 "$BS(0) reset";
>
> $ns_ at $opt(stop).0002 "puts \"NS EXITING...\" ; $ns_ halt"
> $ns_ at $opt(stop).0001 "stop"
> proc stop {} {
> global ns_ tracefd namtrace
> # $ns_ flush-trace
> close $tracefd
> close $namtrace
> }
>
> # informative headers for CMUTracefile
> puts $tracefd "M 0.0 nn $opt(nn) x $opt(x) y $opt(y) rp \
> $opt(adhocRouting)"
> puts $tracefd "M 0.0 sc $opt(sc) cp $opt(cp) seed $opt(seed)"
> puts $tracefd "M 0.0 prop $opt(prop) ant $opt(ant)"
>
> puts "Starting Simulation..."
> $ns_ run
>
> ===============================================================================
>
> AND I GOT SEGMENTATION FAULT AS FOLLOW,
>
> ==============================================================================
> warning: Please use -channel as shown in tcl/ex/wireless-mitf.tcl
> warning: no class variable Snoop::debug_
>
> see tcl-object.tcl in tclcl for info about this warning.
>
> warning: no class variable Snoop::debug_
>
> see tcl-object.tcl in tclcl for info about this warning.
>
> Segmentation fault(core dumped)
> =============================================================================
>
> How can I slove this problem? I need help from ns expert urgently.
>
> Thank you very much in advance!
>
> With best Regards.
> Zheng Hu
> Center for Wireless Communications
> Department of Electrical & Computer Engineering
> University of Waterloo
> Waterloo,Ontario,Canada,N2L 3G1
> Tel:(519) 888 4567 ext.3099(o)