This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Debugging static variable in inlined member function
- From: "Peng Yu" <pengyu dot ut at gmail dot com>
- To: gdb at sourceware dot org
- Date: Mon, 8 Jan 2007 09:55:31 -0600
- Subject: 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;
}