summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel/dtrace/dtrace_isa.c
diff options
context:
space:
mode:
authorAdam H. Leventhal <ahl@delphix.com>2014-04-21 07:00:44 -0800
committerChristopher Siden <chris@delphix.com>2014-04-21 08:00:44 -0700
commit8e50396accfa540cbe0b549256487d237e3d02f3 (patch)
treebfc1d5a3dfe1bf6ca98c33342a97e0451181334a /usr/src/uts/intel/dtrace/dtrace_isa.c
parentb6240e830b871f59c22a3918aebb3b36c872edba (diff)
downloadillumos-gate-8e50396accfa540cbe0b549256487d237e3d02f3.tar.gz
4772 $C prints no output on crash dump following dtrace panic()
Reviewed by: Sebastien Roy <sebastien.roy@delphix.com> Reviewed by: Eric Schrock <eric.schrock@delphix.com> Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Richard Lowe <richlowe@richlowe.net> Approved by: Eric Schrock <eric.schrock@delphix.com>
Diffstat (limited to 'usr/src/uts/intel/dtrace/dtrace_isa.c')
-rw-r--r--usr/src/uts/intel/dtrace/dtrace_isa.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/usr/src/uts/intel/dtrace/dtrace_isa.c b/usr/src/uts/intel/dtrace/dtrace_isa.c
index 6b5a4e1bd1..f649473dfb 100644
--- a/usr/src/uts/intel/dtrace/dtrace_isa.c
+++ b/usr/src/uts/intel/dtrace/dtrace_isa.c
@@ -24,7 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2013, 2014 by Delphix. All rights reserved.
+ */
#include <sys/dtrace_impl.h>
#include <sys/stack.h>
@@ -433,7 +435,7 @@ dtrace_getarg(int arg, int aframes)
* use the pointer that it passed to the stack as the
* second argument to dtrace_invop() as the pointer to
* the stack. When using this stack, we must step
- * beyond the EIP/RIP that was pushed when the trap was
+ * beyond the EIP that was pushed when the trap was
* taken -- hence the "+ 1" below.
*/
stack = ((uintptr_t **)&fp[1])[1] + 1;
@@ -442,17 +444,17 @@ dtrace_getarg(int arg, int aframes)
* In the case of amd64, we will use the pointer to the
* regs structure that was pushed when we took the
* trap. To get this structure, we must increment
- * beyond the frame structure, and then again beyond
- * the calling RIP stored in dtrace_invop(). If the
- * argument that we're seeking is passed on the stack,
- * we'll pull the true stack pointer out of the saved
+ * beyond the frame structure, the calling RIP, and
+ * padding stored in dtrace_invop(). If the argument
+ * that we're seeking is passed on the stack, we'll
+ * pull the true stack pointer out of the saved
* registers and decrement our argument by the number
* of arguments passed in registers; if the argument
* we're seeking is passed in regsiters, we can just
* load it directly.
*/
struct regs *rp = (struct regs *)((uintptr_t)&fp[1] +
- sizeof (uintptr_t));
+ sizeof (uintptr_t) * 2);
if (arg <= inreg) {
stack = (uintptr_t *)&rp->r_rdi;