Ces derniers jours, certains utilisateurs ont rencontré une procédure d’erreur lors de l’utilisation de gdb debug ns2. Ce problème se poserait pour plusieurs raisons. Discutons-en maintenant.
Recommandé
Fuites de mémoire
- OTcl
OTcl, présent notamment TclCL, permet d’activer des objets intéressants,Cependant, en conséquence, il n’offre pas une collection impressionnante de cacaMécanisme pour ces unités assignées. Cela peut tu devrais être facile aussifuite de mémoire involontaire.Important : des outils comme dmalloc purifyne peut pas détecter une fuite de mémoire du type signalé.Par exemple, considérons ce simple script OTcl ns :
comprendre [nouveau simulateur]parce que je viens de mettre 7 {$ iVous vous attendez à ce que notre utilisation de la mémoire diminue aprèsLa première valeur aléatoire est attribuée. Mais surtout, car OTcl ne l'a pas.Drapeau de refus si la deuxième variable aléatoire de droite est sélectionnée,le précédent ne sera probablement pas libéré et provoquera par la suite la parfaite fuite mémoire.Malheureusement pour beaucoup, il n'y a pas de solution sans stress parce que les orduresL'ensemble des tâches sera probablement fondamentalement incompatible avec cela.Esprit sur Tcl. La seule façon de faire comprendre maintenant est toujours toujoursÉcrivez explicitement chaque objet OTcl affecté dans le vbulletin annulé àtout comme ils s'occupent du physique déplacé en C/C++.
- C / C++
Une autre source est les fuites d’eau de mémoire en C/C++. NSalors le tuto est beaucoup plus simple aussiGardez un œil sur la création d’outils spécialement conçus pour ce rôle, avec par exemple :dmalloc et propre.Ns a cette cible spéciale
ns-pure
pour créer des ns pursfichier exécutable. Assurez-vous d’abord que la macroPURIFY
est bien dansns Makefile se compose du bon compilateurmake ns-pure
.Pour plus d’informations sur l’utilisation de ns avec libdmalloc, voir ici.
Débogage au niveau Tcl
Ns prend en charge le débogueur Don Libs Tcl(voirDocumentation PostScriptetLa source).Installez le programme ou fermez l’article source dansparallèle avec ns-2 et la situation s’est établie.Contrairement à l’attente décrite qui peut être trouvée dans la documentation de tcl-debug,nous ne le supportons pas-RÉ Drapeau. Pour traverser çaDebugger, ajoutez un “Debug 1” fort au scriptendroit approprié.
La commande rrr ns gen-map liste chaque objet sous sa forme réelle.
C’est vraiment utile pour corréler la position au moyen de cette caractéristique d’un objet.donné son nom.Le nom de l’objet était le descripteur OTcl entier, généralement l’identité à“ _o ### ”. Objets Tcl,un débogueur C++ est aussi littéralement disponible pour cela, comme à propos de gdbcomme ça -> nom_.
Débogage au niveau C
Tout débogueur standard peut probablement gérer cette tâche de fait clé.
La macro suivante pour gdb facilite la compréhension de ce qu’il y a à l’intérieur. passeLes routines qui prennent les querelles Tcl TcpAgent :: commande ()):
## (comme pour l'élimination des arguments passés à Tcldéfinir pargvcdéfinir $ i est égal à 0tandis que $ iMélanger le débogage Tcl et C
(Toujours amusant, non ?)
C'est la réalité douloureuse qui revient généralement lors de la visualisation de la sortie Tcl et du débogage.Des trucs de niveau Tcl dans l'espoir d'atteindre le niveau C dit et vice versavice versa. Ceci est une petite astuce sur la façon de rendre cette tâche plus facile.Si vous triez ns gdb alors
- L'appel If (affiché en gras ci-dessous) vous guideAccès au débogueur Tcl. Conseils pour rendre ce supplément uniqueUtilisation du débogueur et ce que vous pouvez faire avec l'aide de celui-ciUse Gdb Debug Ns2
Ispolzovat Gdb Debug Ns2
Usar Gdb Debug Ns2
Usa Gdb Debug Ns2
Uzyj Debugowania Gdb Ns2
Utilizar Gdb Debug Ns2
Anvand Gdb Debug Ns2
Gebruik Gdb Debug Ns2
Verwenden Sie Gdb Debug Ns2
Gdb 디버그 Ns2 사용