IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

debogage : print arg[0]


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Par défaut debogage : print arg[0]
    Bonjour,
    je suis débutant avec gdb. J'essaie d'afficher l'argument entrée utilisant set args :
    puis quand je fais :
    (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gdb) print argv[0]
    No symbol "argv" in current context.
    il m'affiche pas le résultat attendu.

    idem pour print argv[1] et argv[2] ...

    Le résultat attendu est ici :
    http://www.cmi.univ-mrs.fr/~contensi...=env&page=deb3

    Est ce que quelqu'un sait pourquoi il ne m'affiche pas l'adresse et la valeur des argv ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 486
    Par défaut
    Bonjour,

    GDB sert à débugger un programme compilé. Il faut donc lancer GDB en lui passant le nom de l'exécutable à examiner (ou le lancer a posteriori). Sinon, il ne se passera rien.

    Par ailleurs, argv[] est une variable. Plus précisément, un paramètre de la fonction main(). Cette variable (en fait un élément d'un tableau) est rempli par le système avec les arguments passés en ligne de commande mais, une fois le programme lancé, elle se comporte comme une variable locale ordinaire, comme tout autre paramètre de fonction.

    Cela signifie que si tu ne te trouves pas dans la fonction main() au moment où tu écris ces commandes, ou que la fonction main() de ton programme ne définit tout simplement pas ces arguments, ben il n'y aura rien à voir non plus (sauf si tu te trouves dans une autre fonction qui a défini une variable locale s'appellant elle-aussi argv, mais ce serait tordu).

  3. #3
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Je dirais même qu'il faudrait que le programme soit compilé avec les symobles de débogage, sinon gdb ne pourra jamais savoir ce qu'est la variable "argv".

    Le plus simple reste encore de se placer au début de la fonction main (en posant un breakpoint) puis d'inspecter la pile à la recherche d'informations utiles. (étant donné que les paramètres d'une fonction sont le plus souvent stockés sur la pile, du moins sous Linux/Windows).

Discussions similaires

  1. [debogage]JSP
    Par polo54 dans le forum JBuilder
    Réponses: 3
    Dernier message: 10/06/2003, 11h57
  2. [langage] print %d
    Par kacedda dans le forum Langage
    Réponses: 7
    Dernier message: 28/04/2003, 10h12
  3. Print et Preview d'un rapport Rave
    Par joebarthib dans le forum Rave
    Réponses: 4
    Dernier message: 19/12/2002, 14h46
  4. [CR] Print Engine error text
    Par afaraji dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/09/2002, 15h44
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo