Listing 6
#########################################
define setlen
set $setlen = $arg0.t.node_count
end
document setlen
Set the variable $setlen to the length of the set
end
#########################################
define psetlen
setlen $arg0
output $setlen
echo \n
end
document psetlen
Print the length of a set
end
#########################################
# support functions to navigate through nodes
# parent 4
# left 8
# right 12
# value 16
set $cParentOffset = 4
set $cLeftOffset = 8
set $cRightOffset = 12
set $cValueOffset = 16
# definitions of setleft, setright, setparent
# setbegin, setend, setminimum and setnext
# are left out to save space
#########################################
define pset
setbegin $arg0
set $setloop = $setbegin
setend $arg0
while ($setloop != $setend)
output ($arg1 &)($setloop + $cValueOffset)
echo \n
setnext $setloop
set $setloop = $setnext
end
end
document pset
pset varname type
Print the elements of a set varname
example:
13 set<int> l_set;
14 l_set.insert(3);
15 l_set.insert(4);
(gdb) pset l_set int
3
4
end