Ejemplo n.º 1
0
static void
expect_frame(const char **bt, unsigned int bt_len, CSSymbolRef symbol,
    unsigned long addr, unsigned int bt_idx, unsigned int max_frames)
{
    const char *name;
    unsigned int frame_idx = max_frames - bt_idx - 1;

    if (bt[frame_idx] == NULL) {
        T_LOG("frame %2u: skipping system frame", frame_idx);
        return;
    }

    if (CSIsNull(symbol)) {
        T_FAIL("invalid symbol for address %#lx at frame %d", addr, frame_idx);
        return;
    }

    if (frame_idx >= bt_len) {
        T_FAIL("unexpected frame '%s' (%#lx) at index %u",
            CSSymbolGetName(symbol), addr, frame_idx);
        return;
    }

    name = CSSymbolGetName(symbol);
    T_QUIET; T_ASSERT_NOTNULL(name, NULL);
    T_EXPECT_EQ_STR(name, bt[frame_idx],
        "frame %2u: saw '%s', expected '%s'",
        frame_idx, name, bt[frame_idx]);
}
Ejemplo n.º 2
0
static void _sysctl_enable_typefilter(uint8_t* type_filter_bitmap) {
	int mib[] = { CTL_KERN, KERN_KDEBUG, KERN_KDSET_TYPEFILTER };
	size_t needed = KDBG_TYPEFILTER_BITMAP_SIZE;
	if(sysctl(mib, 3, type_filter_bitmap, &needed, NULL, 0)) {
		T_FAIL("KERN_KDSET_TYPEFILTER sysctl failed");
	}
}
Ejemplo n.º 3
0
static void _sysctl_enable(int value)
{
	int mib[] = { CTL_KERN, KERN_KDEBUG, KERN_KDENABLE, value };
	if (sysctl(mib, 4, NULL, NULL, NULL, 0) < 0) {
		T_FAIL("KERN_KDENABLE sysctl failed");
	}
}
Ejemplo n.º 4
0
static void _sysctl_nowrap(bool is_nowrap) {
	int mib[] = { CTL_KERN, KERN_KDEBUG, is_nowrap ? KERN_KDEFLAGS : KERN_KDDFLAGS, KDBG_NOWRAP };
	if (sysctl(mib, 4, NULL, NULL, NULL, 0)) {
		T_FAIL("KDBG_NOWRAP sysctl failed");
	}
}
Ejemplo n.º 5
0
static void _sysctl_setup() {
	int mib[] = { CTL_KERN, KERN_KDEBUG, KERN_KDSETUP };
	if (sysctl(mib, 3, NULL, NULL, NULL, 0)) {
		T_FAIL("KERN_KDSETUP sysctl failed");
	}
}
Ejemplo n.º 6
0
static void _sysctl_setbuf(uint32_t capacity) {
	int mib[] = { CTL_KERN, KERN_KDEBUG, KERN_KDSETBUF, (int)capacity };
	if (sysctl(mib, 4, NULL, NULL, NULL, 0)) {
		T_FAIL("KERN_KDSETBUF sysctl failed");
	}
}
Ejemplo n.º 7
0
static void _sysctl_reset() {
	int mib[] = { CTL_KERN, KERN_KDEBUG, KERN_KDREMOVE };
	if(sysctl(mib, 3, NULL, NULL, NULL, 0)) {
		T_FAIL("KERN_KDREMOVE sysctl failed");
	}
}