Remove the arg0 field from struct amd64_frame. Its existence was a bug,
since on amd64 the first argument to a function is generally not on the stack. Revert an old DTrace bug fix to some code that assumed that sizeof(struct amd64_frame) == 16. Reviewed by: jhb, kib Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3255
This commit is contained in:
parent
dfb0cc5c03
commit
b30bc0e211
@ -440,7 +440,7 @@ dtrace_getarg(int arg, int aframes)
|
||||
}
|
||||
|
||||
arg -= (inreg + 1);
|
||||
stack = (uintptr_t *)fp + 2;
|
||||
stack = (uintptr_t *)&fp[1];
|
||||
|
||||
load:
|
||||
DTRACE_CPUFLAG_SET(CPU_DTRACE_NOFAULT);
|
||||
|
@ -45,7 +45,6 @@ struct i386_frame {
|
||||
struct amd64_frame {
|
||||
struct amd64_frame *f_frame;
|
||||
u_long f_retaddr;
|
||||
u_long f_arg0;
|
||||
};
|
||||
|
||||
struct i386_frame {
|
||||
|
Loading…
x
Reference in New Issue
Block a user