私自身の開発 (Mac、iOS) でよくあるデバッグ エラーの 1 つは、EXC_BAD_ACCESS です。その一般性にもかかわらず、その起源と正確な意味は謎のままです。Google はエラーの多くの発生をリストしていますが、私が見つけた唯一の説明は非公式で不完全です.
この例外 (それが適切な用語である場合) は、コードが読み取りおよび/または書き込み権限を持たないアドレス (たとえば、null アドレス、または外部のアドレス) にアクセスしようとしたことを意味します。プロセスのアドレス空間。しかし、これは仮想メモリと保護されたメモリ システムに関する私の以前の経験に基づいた直感的な解釈です。私は EXC_BAD_ACCESS がどこにも文書化されているのを見たことがありません。実際、「誰」がこの例外を私に送っているのかわからない - CPU、Mac OS、UNIX、ランタイム、デバッガー?どのクラスのドキュメントを参照するか)。たとえば、例外とともにリストされている「コード」が何を意味するのか知りたいです。または別の例: 同様の例外の他のクラス (おそらく "EXC_" もタグ付けされています)
EXC_BAD_ACCESS、そのコード、および一般的なセマンティクスの説明は、信頼できる情報源からどこで見つけることができますか? 実際に例外を検出してスローしているのは誰か?