Debugging C++ Applications Using HP WDB (766162-001, March 2014)
(gdb) p objB
$1 = {<A> = {dataA = 20}, dataB = 40}
(gdb) call objB.setA(100)
(gdb) p objB
$2 = {<A> = {dataA = 100}, dataB = 40}
Example 7 shows a sample program for debugging inheritance.
Example 7 Sample Program for Debugging Inheritance
1 #include <iostream>
2 using namespace std;
3
4 class A {
5 int dataA;
6 public:
7 void setA(int arg) { dataA = arg; }
8 int getA() { return dataA; }
9 };
10
11 class B {
12 int dataB;
13 public:
14 void setB(int arg) { dataB = arg; }
15 int getB() { return dataB; }
16 };
17
18 class C : public A, public B {
19 public:
20 int dataC;
21 };
22
23 int main() {
24 C objC;
25 objC.setA(20);
26 objC.setB(40);
27 objC.dataC = 60;
28 cout << objC.getA() << endl;
29 }
The WDB output snippet for this program is as shown below:
(gdb)
28 cout << objC.getA() << endl;
(gdb) ptype objC
type = class C : public A, public B {
public:
int dataC;
}
(gdb) p objC
$1 = {<A> = {dataA = 20}, <B> = {dataB = 40}, dataC=60}
(gdb) p objC.setA(200)
$2 = void
(gdb) call objC.setB(400)
(gdb) p objC
$3 = {<A> = {dataA = 200}, <B> = {dataB = 400}, dataC = 60}
Debugging inherited classes 15