changeset 14086:cc3db4d15c60

3911 mdb is unable to display recursive stack Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Garrett D'Amore <garrett.damore@gmail.com> Reviewed by: Wendy Lin <wendlin1974@gmail.com> Approved by: Gordon Ross <gwr@nexenta.com>
author Marcel Telka <marcel.telka@nexenta.com>
date Fri, 26 Jul 2013 21:06:29 +0200
parents c1602d3adc9b
children 1eb9c4349b7c
files usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c
diffstat 1 files changed, 5 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c	Tue Jul 23 13:45:45 2013 -0400
+++ b/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c	Fri Jul 26 21:06:29 2013 +0200
@@ -23,6 +23,9 @@
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
+/*
+ * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
+ */
 
 #include <sys/types.h>
 #include <sys/reg.h>
@@ -172,7 +175,7 @@
 
 	uintptr_t fp = gsp->kregs[KREG_RBP];
 	uintptr_t pc = gsp->kregs[KREG_RIP];
-	uintptr_t lastfp, curpc;
+	uintptr_t lastfp;
 
 	ssize_t size;
 	ssize_t insnsize;
@@ -194,8 +197,6 @@
 	while (fp != 0) {
 		int args_style = 0;
 
-		curpc = pc;
-
 		if (!fp_is_aligned(fp, xpv_panic))
 			return (set_errno(EMDB_STKALIGN));
 
@@ -320,14 +321,11 @@
 		if (xpv_panic)
 			if ((fp != 0) && (fp < lastfp) &&
 			    ((lastfp ^ ~fp) < 0xfff))
-			fp = ~fp;
+				fp = ~fp;
 
 		kregs[KREG_RBP] = fp;
 		kregs[KREG_RIP] = pc = fr.fr_savpc;
 
-		if (curpc == pc)
-			break;
-
 		got_pc = (pc != 0);
 	}