dtrace: correct the aframes value for fbt provider
Set the number of artificial frames to 5: 1. cpu_exception_handler_supervisor() 2. do_trap_supervisor() 3. dtrace_invop_start() 4. dtrace_invop() 5. fbt_invop() Reviewed by: markj MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37663
This commit is contained in:
parent
40fdda022a
commit
36a9ce874b
@ -45,6 +45,7 @@
|
||||
#define FBT_PATCHVAL MATCH_EBREAK
|
||||
#define FBT_ENTRY "entry"
|
||||
#define FBT_RETURN "return"
|
||||
#define FBT_AFRAMES 5
|
||||
|
||||
int
|
||||
fbt_invop(uintptr_t addr, struct trapframe *frame, uintptr_t rval)
|
||||
@ -196,7 +197,7 @@ fbt_provide_module_function(linker_file_t lf, int symindx,
|
||||
fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO);
|
||||
fbt->fbtp_name = name;
|
||||
fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
|
||||
name, FBT_ENTRY, 3, fbt);
|
||||
name, FBT_ENTRY, FBT_AFRAMES, fbt);
|
||||
fbt->fbtp_patchpoint = instr;
|
||||
fbt->fbtp_ctl = lf;
|
||||
fbt->fbtp_loadcnt = lf->loadcnt;
|
||||
@ -239,7 +240,7 @@ fbt_provide_module_function(linker_file_t lf, int symindx,
|
||||
fbt->fbtp_name = name;
|
||||
if (retfbt == NULL) {
|
||||
fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
|
||||
name, FBT_RETURN, 3, fbt);
|
||||
name, FBT_RETURN, FBT_AFRAMES, fbt);
|
||||
} else {
|
||||
retfbt->fbtp_probenext = fbt;
|
||||
fbt->fbtp_id = retfbt->fbtp_id;
|
||||
|
Loading…
Reference in New Issue
Block a user