1
私は後で_mm256_store_pd(dst,q);
を使用して、ここでセグメンテーション違反が発生んなぜ命令なぜvmovapdがsegfaultを引き起こしますか?
vmovapd YMMWORD PTR [rdi],ymm0
で時折セグメンテーションフォールトを取得
double *dst;
posix_memalign((void**)&dst, 32, 4*sizeof(double));
で32バイトにアラインdoubleの配列を割り当てられていますか? vmovapd
は、整列以外の理由でセグメンテーションを引き起こす可能性がありますか?
'アラインメント以外の理由でvmovapdがsegfaultを引き起こす可能性がありますか? 'はい、NULLポインタ(または他の無効なアクセス)。デバッガを使用して、障害が発生した場所でRDIを見て、RDIの位置がずれているかどうかを確認します。 (gdbの 'x'コマンドを使ってメモリをダンプしようとするとgdbに無効なアクセスがあったとしたら、それが整列していても悪いポインタだということが分かります) –
@PeterCordesありがとう、私はコアダンプを調べ、1つのケースでポインタの位置がずれていることがわかりました。 – stardt