私が使用しているライブラリでBad address
、readv
.
エラーの正確な原因は何ですか?それは目的地ですか、それともソースですか?segfault
代わりにそうしないのはなぜですか?
Bad Address
は のエラー メッセージです。http://linux.die.net/man/2/readEFAULT
では、プロセスのアドレス指定可能なメモリの範囲外であることを意味すると説明されています (エラー コードは の場合と同じです)。それは、(おそらく、しかしそれはセグメンテーション違反を引き起こすと思います、それはライブラリの「解釈された」AFAIKにすぎないためです)、またはおそらく、ポインタの1つ(実装するために適切なシステムコールに渡されます)のいずれかが外部にあることを意味しますアドレス可能なメモリの; データ交換のために渡されたポインタが無効であることを伝えるカーネルの方法です。read()
readv()
buf
readv()
iov
iov_base
readv()
EFAULT
NULL
-pointers、または同様のものを確認してください。コメント作成者が言っているようにvalgrind
、問題の原因を診断するのに役立ちます-ライブラリとユーザーコードで使用可能なデバッグシンボルがある場合。