Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Discussion: déferancer un void*

  1. #1
    Membre confirmé Avatar de TheDrev
    Profil pro
    Inscrit en
    novembre 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : novembre 2006
    Messages : 307
    Points : 204
    Points
    204

    Par défaut déferancer un void*

    Hello,

    je cherche a espionner un pointeur sur une structure de type var, pointé en tant que void* data mais gdb me répond "attempt to dereferance a generic pointer" comme gdb a une syntaxe proche de celle du c, j'essai (var*)root.data mais pas de changement.

    Comment afficher les void* dans gdb ? merci
    all your base are belong to us.

  2. #2
    Membre confirmé
    Inscrit en
    avril 2009
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 182
    Points : 219
    Points
    219

    Par défaut

    devrait fonctionner je pense, mais comme tu ne fournis pas baucoup de détails sur ton code je ne peux pas être sûr.

    Quand tu fais :
    l'opérateur . a priorité sur l'opérateur () de transtypage, du coup, tu accèdes au champ avant de caster. Il faut mettre des parenthèses pour effectuer le cast AVANT d'accéder au champ.
    Ensuite, root et un pointeur sur une structure donc pour en obtenir le champ il faut faire soit :
    soit
    Hum à la réflexion ce que je ferai moi c'est :
    Code :
    1
    2
    3
    var *ma_var = root;
    ...
    root->data;
    Je trouve ça plus clair et moins piégeant, mais encore une fois, tout dépend de ton code.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •