"Debugger",
"IS_64BIT_PROCESS",
"OSCompareAndSwap",
+ "_disable_preemption",
+ "_enable_preemption",
"absolutetime_to_microtime",
"act_set_astbsd",
+ "ast_dtrace_on",
"ast_pending",
"clock_get_calendar_nanotime_nowait",
"copyin",
}
static const void * bsearch(
- register const void *key,
+ const void *key,
const void *base0,
size_t nmemb,
- register size_t size,
- register int (*compar)(const void *, const void *)) {
+ size_t size,
+ int (*compar)(const void *, const void *)) {
- register const char *base = base0;
- register size_t lim;
- register int cmp;
- register const void *p;
+ const char *base = base0;
+ size_t lim;
+ int cmp;
+ const void *p;
for (lim = nmemb; lim != 0; lim >>= 1) {
p = base + (lim >> 1) * size;
*/
if (LIT_STRNSTART(name, "kdp_") ||
LIT_STRNSTART(name, "kdb_") ||
- LIT_STRNSTART(name, "kdbg_") ||
- LIT_STRNSTART(name, "kdebug_") ||
- LIT_STRNSTART(name, "kernel_debug") ||
LIT_STRNSTART(name, "debug_") ||
LIT_STRNEQL(name, "Debugger") ||
LIT_STRNEQL(name, "Call_DebuggerC") ||
machine_inst_t *instr, *limit, theInstr, i1, i2, i3;
int size;
+ /*
+ * Guard against null symbols
+ */
+ if (!symbolStart || !instrLow || !instrHigh) {
+ kprintf("dtrace: %s has an invalid address\n", symbolName);
+ return;
+ }
+
for (j = 0, instr = symbolStart, theInstr = 0;
(j < 4) && ((uintptr_t)instr >= instrLow) && (instrHigh > (uintptr_t)(instr + 2));
j++) {
if (MOD_HAS_USERSPACE_SYMBOLS(ctl)) {
__user_syms_provide_module(arg, ctl);
ctl->mod_flags |= MODCTL_FBT_PROBES_PROVIDED;
+ if (MOD_FBT_PROVIDE_PRIVATE_PROBES(ctl))
+ ctl->mod_flags |= MODCTL_FBT_PRIVATE_PROBES_PROVIDED;
return;
}
}