De senaste dagarna har vissa användare stött på ett felriktnummer när de använder gdb debug ns2. Detta problem kommer att uppstå av flera anledningar. Låt oss diskutera huset nu.
Rekommenderas
Minnesläckor
- OTcl
OTcl, särskilt TclCL, låter dig aktivera unika objekt,men som ett resultat erbjuder den inte fantastisk bs-kollektionMekanism för dessa tilldelade enheter. Detta kan också göra det lättoavsiktlig minnesläcka.Viktigt: verktyg som dmalloc purifykan inte plocka upp en minnesläcka av den här artikeltypen.Tänk till exempel på det här enkla OTcl ns-skriptet:
ta reda på [ny simulator]eftersom jag precis satte 7 {$ iDu förväntar dig att vår minnesanvändning minskar efteråtDet första slumpmässiga värdet tilldelas. Men över var och en av, eftersom OTcl inte har det.Avslagsflagga om en stor andra slumpvariabel väljs,den föregående kommer säkerligen inte att frigöras och kommer därefter att orsaka en viss minnesläcka.Tyvärr för många finns det ingen snabb lösning eftersom skräpetUppsättningen av uppgifter är ofta i grunden oförenlig med detta.Esprit på Tcl. Det definitivt sättet att göra det klart nu anses alltidSkriv uttryckligen varje OTcl-objekt som tilldelats i det nullställda programmet tillprecis som de tar hand om flyttade prylar i C/C++.
- C / C ++
En annan källa är minnessprickor i C/C++. NSå är styrningen mycket enklare ocksåHåll utkik som är lämpliga för några verktyg speciellt utformade för denna roll, tillgängliga till exempel:dmalloc och ren.Ns har detta speciella
ns-pure
-mål för att skapa rena nskörbar fil. Se först till att makrotPURIFY
har varit ins Makefile består av rättkompilator
för dinLinker (kolla in den tomma sidan om du vet vad det är).Har sedan angettmake ns-pure
.För mer information om ns med libdmalloc se här.
Tcl-nivåfelsökning
Ns stöder Don Libs Tcl debugger(serPostScript-dokumentationochKälla).Installera programmet eller stäng källwebbplatsen iparallellt med ns-2 och situationen ansågs etablerad.Till skillnad från den beskrivna väntan som kan hittas i tcl-debug-dokumentationen,vi stöder inte det-D Flagga. Att ta sig igenom dettaDebugger, lägg till en väl upplyst “Debug 1” till skriptetlämplig plats.
Kommandot dollars ns gen-map listar varje objekt i obearbetad form.
Detta är verkligen användbart för att korrelera position som lider av denna egenskap hos ett objekt.fått sitt namn.Objektnamnet kan vara hela OTcl-beskrivningen, vanligtvis är logotypen“ _o ### ”. TclObjects,en C++ debugger är definitivt också tillgänglig för detta, som för gdbså här-> namn_.
Felsökning på C-nivå
Vilken standardfelsökning som helst kan förmodligen hantera en viss uppgift.
Följande makro för gdb gör det lättare för dig att förstå vad som finns inuti. passeraRutiner som tar Tcl goda skäl TcpAgent :: kommando ()):
## (som för avfallsargument som skickats till Tcldefiniera pargvcdefiniera $ i är lika med 0medan $ iBlanda Tcl- och C-felsökning
(Alltid kul, eller hur?)
Detta är varje smärtsam verklighet som vanligtvis dyker upp när man ser Tcl-utdata och felsökning.Tcl nivå grejer hoppas upp att komma till C nivå säger och vice versavice versa. Det här är ett litet tips om hur man gör denna uppgift enklare.Om du dyker ns gdb då
- If-anropet (visas i fet stil nedan) guidar digTillgång till Tcl-felsökaren. Tips om hur du gör detta helt naturliga kosttillskott uniktAnvända debuggern och vad du kan göra tack vare denUse Gdb Debug Ns2
Ispolzovat Gdb Debug Ns2
Usar Gdb Debug Ns2
Usa Gdb Debug Ns2
Uzyj Debugowania Gdb Ns2
Utiliser Gdb Debug Ns2
Utilizar Gdb Debug Ns2
Gebruik Gdb Debug Ns2
Verwenden Sie Gdb Debug Ns2
Gdb 디버그 Ns2 사용