103

とは何SEGV_MAPERRですかSIGSEGV

4

2 に答える 2

214

SEGVには 2 つの一般的な種類があります。これは、無効なメモリ アクセスが原因で発生するエラーです。

  1. 間違った権限を持つページにアクセスしました。たとえば、読み取り専用でしたが、コードが書き込みを試みました。これは として報告されSEGV_ACCERRます。
  2. アプリケーションのアドレス空間にまったくマップされていないページがアクセスされました。これは、多くの場合、null ポインターまたは小さな整数値で破損したポインターを逆参照した結果として発生します。これは として報告されていSEGV_MAPERRます。

の一種のドキュメント (インデックス付きの Linux ソース コード) は、 http SEGV_MAPERR: //lxr.free-electrons.com/ident?i=SEGV_MAPERRにあります。

于 2015-01-23T18:36:18.230 に答える
40

セグメンテーション違反です。ほとんどの場合、ダングリング ポインターの問題か、何らかのバッファ オーバーフローが原因です。

SIGSSEGV問題、セグメンテーション違反に基づいて終了するシグナルです。

ダングリング ポインターとオーバーフローの問題を確認します。

コア ダンプを有効にすると、問題の特定に役立ちます。

于 2009-06-16T07:33:12.713 に答える