Wie bekomme ich den Variablennamen zu Adresse 0x0066f66f



  • Hallo,

    ich habe an einem bestimmten Punkt in meinem Program einen Breakpoint gesetzt. Wenn der Breakpoint angesprungen wird. Erhalte ich in einer Pointer Variablen, den Pointer mit einer Adresse.

    Ist es möglich, dass ich prüfen lasse, welche Variable an dieser Adresse gespeichert ist? Oder welche Pointer im Moment noch auf diesen Speicherbereich zeigen?

    MfG
    Scarabol


  • Mod

    Nein!
    Aberich verstehe Deine Frage nicht gaz. Duhast einen Zeiger, dann kannst Du doch auch den Inhalt direkt verifizieren... oder ist der nur void*?

    Du kannst höchstens evtl. aus dem Inhalt auf die Art des Zeigers rückschließen.



  • Also dann geh ich mal weiter ins Detail vielleicht kann man ja doch was machen:

    Ich bekommen von meiner GUI angezeigt, dass sich über den ganzen Bildschirm ein Element erstreckt. Ich bekomme aber wie gesagt nur einen Pointer auf das Element geliefert alla Element * Pointer = xyz();
    Sonst kann ich mir leider keine Infos zu dem Element anzeigen lassen, da Element nur die Basisklasse für weitere GUI Objekte ist.

    Ich würde nun gern mit Visual C++ nach einer Variablen suchen, die ebenfalls auf die in Pointer gespeicherte Adresse zeigt.

    Frage:
    Geht das, wenn ja wie?

    MfG
    Scarabol


  • Mod

    Nein geht nicht.

    Aber wenn die Basisklasse auf die der Zeiger verwiest eine vtable hat, dann bekommst Du genau gesagt was für ein Objekt das ist...
    Eine einzige virtuelle Funktion wie zum Beispiel ein virtueller Destruktor und der Debugger zeigt Dir genau an um welches Objekt es sich handelt.

    Ansonsten kannst Du selber casts im Watch Window versuchen und den Zeiger so auf verschiedene Arten zu interpretieren.

    Aber ich verstee es dennoch nciht. Wenn Du diesen Zeiger bekommst, dann hat der 1. eine Bedeutung, und 2. eine Interpretationsmöglichkeit mit der Du doch exakt auf seinen Inhalt zurückschließen kannst.
    Was hätte sonst dieser zeiger für einen Sinn?


Anmelden zum Antworten