Examiner boost shared_ptr avec gdb

Voici mon code source:

#include <iostream>
#include <boost/shared_ptr.hpp>

class MyClass
{
    public:
        MyClass()
        {
            i=10;
        }
    private:
        int i;
};


int main(int argc, const char *argv[])
{
    boost::shared_ptr <MyClass> obj(new MyClass());
    return 0;
}

Je veux examiner obj dans gdb, et afficher la valeur de la variable de membre de que je.

C'est ce que j'obtiens avec la normale d'impression:

29          boost::shared_ptr <MyClass> obj(new MyClass());
(gdb) n
30          return 0;
(gdb) p obj
$1 = {px = 0x602010, pn = {pi_ = 0x602030}}

J'ai essayé l'astuce mentionnée dans ce lien , mais ne fonctionne pas.

(gdb) call (obj.get())->print()
Cannot evaluate function -- may be inlined

Est-il un autre moyen? gdb version 7.0.1.

  • Un autre bon vieil ami est clair printf 🙂
  • Anand Rathi..., oui, mais je voulais juste savoir si c'est possible avec gdb.