#include <mach/mach_types.h>
#include <kern/thread.h>
#include <kern/backtrace.h>
+#include <kern/cambria_layout.h>
#include <vm/vm_map.h>
#include <kperf/buffer.h>
#include <kperf/context.h>
cs->kpuc_frames[0] |= 1ULL;
}
+
fixup_val = get_saved_state_lr(state);
#else
cs->kpkc_flags |= CALLSTACK_KERNEL_WORDS;
bool trunc = false;
cs->kpkc_nframes = backtrace_interrupted(
- cs->kpkc_word_frames, cs->kpkc_nframes - 1, &trunc);
+ cs->kpkc_word_frames, cs->kpkc_nframes - 1, &trunc);
if (cs->kpkc_nframes != 0) {
callstack_fixup_interrupted(cs);
}
*/
unsigned int maxnframes = cs->kpuc_nframes - 1;
unsigned int nframes = backtrace_thread_user(thread, cs->kpuc_frames,
- maxnframes, &error, &user64, &trunc);
+ maxnframes, &error, &user64, &trunc, true);
cs->kpuc_nframes = MIN(maxnframes, nframes);
/*
}
kperf_ast_set_callstack_depth(context->cur_thread, depth);
return kperf_ast_pend(context->cur_thread, T_KPERF_AST_CALLSTACK,
- actionid);
+ actionid);
}
static kern_return_t