This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Debugging static variable in inlined member function


Hi,

I have the following program listed below this email. I can not print
_a in the inlined version. But it is OK to print _a in the non-inlined
version. Can you tell me how to debug the inlined version of _a?

(gdb) s
main () at main.cc:32
32        std::cout << a.a() << std::endl;
(gdb) s
A::a (this=0xbff21077) at main.cc:11
11            std::cout << "inline" << std::endl;
(gdb) n
inline
12            ++ _a;
(gdb) p _a
No symbol "_a" in current context.

Thanks,
Peng

#include <iostream>

#define INLINE

class A {
 public:
   A() { }
#ifdef INLINE
   int a() {
     static int _a = 10;
     std::cout << "inline" << std::endl;
     ++ _a;
     return _a;
   }
#else
   int a();
#endif
 private:
};

#ifndef INLINE
int A::a() {
 static int _a = 10;
 std::cout << "not inline" << std::endl;
 ++ _a;
 return _a;
}
#endif

int main() {
 A a;
 std::cout << a.a() << std::endl;
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]