| #include <stdio.h> | |
| class Base1 { | |
| public: | |
| virtual ~Base1() {} | |
| }; | |
| class Base2 { | |
| public: | |
| virtual void doit() = 0; | |
| virtual void doit_debug() = 0; | |
| }; | |
| Base2 *b; | |
| class Derived1 : public Base1, public Base2 { | |
| public: | |
| virtual void doit() { printf("Derived1\n"); } | |
| virtual void __attribute__((nodebug)) doit_debug() { | |
| printf("Derived1 (no debug)\n"); | |
| } | |
| }; | |
| class Derived2 : public Base2 { | |
| public: | |
| virtual void doit() { printf("Derived2\n"); } | |
| virtual void doit_debug() { printf("Derived2 (debug)\n"); } | |
| }; | |
| void testit() { b->doit(); } | |
| void testit_debug() { | |
| b->doit_debug(); | |
| printf("This is where I should step out to with nodebug.\n"); // Step here | |
| } | |
| int main() { | |
| b = new Derived1(); | |
| testit(); | |
| testit_debug(); | |
| b = new Derived2(); | |
| testit(); | |
| testit_debug(); | |
| return 0; | |
| } |