diff options
Diffstat (limited to 'src/pkg/runtime/runtime-gdb.py')
| -rw-r--r-- | src/pkg/runtime/runtime-gdb.py | 11 | 
1 files changed, 7 insertions, 4 deletions
| diff --git a/src/pkg/runtime/runtime-gdb.py b/src/pkg/runtime/runtime-gdb.py index 08772a431..3f767fbdd 100644 --- a/src/pkg/runtime/runtime-gdb.py +++ b/src/pkg/runtime/runtime-gdb.py @@ -122,10 +122,13 @@ class ChanTypePrinter:  		return str(self.val.type)  	def children(self): -		ptr = self.val['recvdataq'] -		for idx in range(self.val["qcount"]): -			yield ('[%d]' % idx, ptr['elem']) -			ptr = ptr['link'] +		# see chan.c chanbuf() +		et = [x.type for x in self.val['free'].type.target().fields() if x.name == 'elem'][0] +                ptr = (self.val.address + 1).cast(et.pointer()) +                for i in range(self.val["qcount"]): +			j = (self.val["recvx"] + i) % self.val["dataqsiz"] +			yield ('[%d]' % i, (ptr + j).dereference()) +  #  #  Register all the *Printer classes above. | 
