Skip to content

Instantly share code, notes, and snippets.

View jesboat's full-sized avatar

Jade Sailor jesboat

  • Boston, MA
View GitHub Profile
@jesboat
jesboat / NOTES.md
Created May 6, 2020 22:18
kernel debug notes

Reboot to recovery mode. Turn off SIP and secure boot. Boot back to normal mode.

Go to https://developer.apple.com/download/more/ and click "More" in the upper-right. Search for "Kernel". Download and install the Kernel Debug Kit for your build of macOS (run sw_vers on the command line to get it. A nearby KDK will often work; installing one is harmless.

For the KDK, exact build number is best and should definitely work. Otherwise, after installing it, you can see if the release kernel in the KDK (e.g. /Library/Developer/KDKs/KDK_10.14.6_18G2016.kdk/System/Library/Kernels/) matches the actual kernel (/System/Library/Kernels/kernel) with diff/shasum/whatever. If they match, the KDK will probably work. If they don't, the KDK might work. Probably nothing horrible will happen if you try and it doesn't.

Once you decide to use a KDK (or not), install the development kernel:

sudo mount -uw /
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
use IPC::Open2;
sub read_panic {
This file has been truncated, but you can view the full file.
Sampling process 5829 for 3 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Analysis of sampling pyre.bin (pid 5829) every 1 millisecond
Process: pyre.bin [5829]
Path: /Users/jon/scratch/s-TF3L/testcase/venv1/bin/pyre.bin
Load Address: 0x107085000
Identifier: pyre.bin
Version: 0
Code Type: X86-64
Parent Process: pyre.bin [5739]
#!/bin/bash
# These are the versions of the things I had installed
# when I noticed the issue
pkgs=(
# pyre + dependency tree
pyre_check==0.0.46
libcst==0.3.6
PyYAML==5.3.1
typing_extensions==3.7.4.2
if (this.hardMode) {
var t = (
function() {
var thisGuess = s;
var previousGuess = this.boardState[this.rowIndex - 1];
var previousEvaluation = this.evaluations[this.rowIndex - 1];
if (!thisGuess || !previousGuess || !previousEvaluation) {
return {
validGuess: true,