diff options
| author | Ondřej Surý <ondrej@sury.org> | 2011-04-26 09:55:32 +0200 | 
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2011-04-26 09:55:32 +0200 | 
| commit | 7b15ed9ef455b6b66c6b376898a88aef5d6a9970 (patch) | |
| tree | 3ef530baa80cdf29436ba981f5783be6b4d2202b /src/pkg/runtime/runtime-gdb.py | |
| parent | 50104cc32a498f7517a51c8dc93106c51c7a54b4 (diff) | |
| download | golang-7b15ed9ef455b6b66c6b376898a88aef5d6a9970.tar.gz | |
Imported Upstream version 2011.04.13upstream/2011.04.13
Diffstat (limited to 'src/pkg/runtime/runtime-gdb.py')
| -rw-r--r-- | src/pkg/runtime/runtime-gdb.py | 14 | 
1 files changed, 6 insertions, 8 deletions
| diff --git a/src/pkg/runtime/runtime-gdb.py b/src/pkg/runtime/runtime-gdb.py index 68dd8abdc..08772a431 100644 --- a/src/pkg/runtime/runtime-gdb.py +++ b/src/pkg/runtime/runtime-gdb.py @@ -215,6 +215,8 @@ class IfacePrinter:  		return 'string'  	def to_string(self): +		if self.val['data'] == 0: +			return 0x0  		try:  			dtype = iface_dtype(self.val)  		except: @@ -308,15 +310,11 @@ class GoroutinesCmd(gdb.Command):  		for ptr in linked_list(gdb.parse_and_eval("'runtime.allg'"), 'alllink'):  			if ptr['status'] == 6:	# 'gdead'  				continue -			m = ptr['m']  			s = ' ' -			if m: -				pc = m['sched']['pc'].cast(vp) -				sp = m['sched']['sp'].cast(vp) +			if ptr['m']:  				s = '*' -			else: -				pc = ptr['sched']['pc'].cast(vp) -				sp = ptr['sched']['sp'].cast(vp) +                        pc = ptr['sched']['pc'].cast(vp) +                        sp = ptr['sched']['sp'].cast(vp)  			blk = gdb.block_for_pc(long((pc)))  			print s, ptr['goid'], "%8s" % sts[long((ptr['status']))], blk.function @@ -326,7 +324,7 @@ def find_goroutine(goid):  		if ptr['status'] == 6:	# 'gdead'  			continue  		if ptr['goid'] == goid: -			return [(ptr['m'] or ptr)['sched'][x].cast(vp) for x in 'pc', 'sp'] +			return [ptr['sched'][x].cast(vp) for x in 'pc', 'sp']  	return None, None | 
