Debugging C++ Applications Using HP WDB (766162-001, March 2014)

Debugging enum class
C++11 allows a special classification of enumeration called scoped enum. This is expressed using
the enum class declaration. This enum class can be debugged using ptype, print commands.
Example 25 (page 37) shows a sample program for debugging enum class:
Example 25 Sample program for debugging enum class
1 enum class GEC {aa2, bb2, cc2};
2 enum class GECC:char {aa4, bb4};
3
4 namespace myNS
5 {
6 enum class EC { green, yellow, red };
7 }
8
9 GEC ggec = GEC::aa2;
10 GECC ggecc = GECC::aa4;
11
12 class AA {
13 public:
14 enum class AAEC {xyz, uvw};
15 AAEC aaec = AAEC::xyz;
16 int fun(float x, int y)
17 {
18 enum class AAABCEC {a1,b2};
19 AAABCEC aaabcec = AAABCEC::a1;
20 return y+1;
21 }
22 };
23
24 int main()
25 {
26 enum class EC {orange, violet};
27 enum class ECC:char {yellow, gray};
28 AA aa;
29 int val;
30
31 GEC gec = GEC::aa2;
32 GECC gecc = GECC::bb4;
33 EC ec = EC::orange;
34 ECC ecc = ECC::yellow;
35 myNS::EC nsec = myNS::EC::green;
36
37 val = aa.fun(1.1,1);
38
39 return 0;
40 }
The following is the WDB output snippet for this program:
(gdb) b 37
Breakpoint 1 at 0x4000950:0: ile my_enum_class.cc, line 37 from
/user/usr1/my_enum_class.
(gdb) r
Starting program: /user/usr1/my_enum_class
Breakpoint 1, main () at my_enum_class.cc:37
37 val = aa.fun(1.1,1);
(gdb) pt GEC
type = enum class GEC {GEC::aa2, GEC::bb2, GEC::cc2}
(gdb) pt gecc
Debugging C++11 specific features 37