2017-10-13 18 views
1

それを説明するページはたくさんありますが、見つけられません。私が見つけた記事の多くは、エル・キャピタンや旧式のシステムでしか動作しません。Sierraのkprintf(kernel printf)ログはどこにありますか?

私は正しいドングルを持っていないので、今はfwkpfvを使用できません。私のクライアントはFireWireをサポートする中古MacBookを私に手に入れています。

私のカーネル拡張は、私のボックスをパニックにします。私の同僚が自分の内線を構築するのは間違いなく、うまくいきます。私はうんざりしたままです。

答えて

1

あなたが得る過去ログを見ているため、コマンド

log stream --process 0 

を使用してローカルカーネルのログを「ライブ」、代わりにlog showを使用することができ、例えば:その

log show --predicate 'processID == 0' --last 1h | less 

どれもかなりのお手伝いをしませんしかし、カーネルパニックは、ユーザ空間でロギングが非同期的に発生するため、パニックの前に最後のメッセージを得ることはありません。あなたはおそらくすでにの認識しているが、私は完全酒のためにそれらを言及しますファイヤワイヤなしKPSをデバッグするための、より

いくつかのオプション、:

  • イーサネットベースのカーネルデバッグ(ファイヤワイヤではなく) 。テストデバイスだけが有線/雷ソケットのイーサネットを必要とするため、デバッガを実行しているMacはWi-Fiに接続できます。
  • パニックログ自体からかなりの情報を抽出することができます:スタックを象徴することに加えて(keepsyms=1 boot-argを使用するので、遡及的に行う必要はありません)、レジスタの内容と分解を見ることができます多くの場合、変数の値がわかります。
  • アップルのコードにスタックトレースの一部がない場合は、リリース1ではなくデバッグまたは開発用カーネルを実行してください。それらはより少ない最適化を可能にしてビルドされているので、関数はインライン化される可能性が低くなります。
  • カーネルで有効にできるメモリデバッグとその他の診断オプションがあります。 -zp,-zcなど。
  • VM(VMWare Fusion、Parallels、VirtualBox、KVM/Qemuなど)のクラッシュを再現できる場合は、VMのシミュレートしたシリアルポートを使用してkprintf出力を記録できます。仮想イーサネットポートは、それらを正しく設定すると、カーネルのデバッグをサポートする傾向があります。
+0

ありがとうございました!申し訳ありませんが、私はあなたの答えを受け入れるのにとても時間がかかった。 –

関連する問題