簡體   English   中英

strcpy未對齊__strcpy_sse2_unaligned()

[英]strcpy misalignment __strcpy_sse2_unaligned()

解決__strcpy_sse2_unaligned()問題的正確方法應該是什么? 即。 strcpy(enc_buf, base64_encode(buf)); 導致gdb中的__strcpy_sse2_unaligned()那么,預防這種情況的預防措施是什么?

編譯器無法確定源char*和目標char*是否對齊(通常是字對齊,甚至是四字對齊),因此正在備份到未對齊但可能已優化的strcpy例程。 您需要明確提示它正在錯過的猜測。 否則,它只會放棄:SSE通常不允許未對齊的訪問,或者訪問速度仍然很慢。

但是 ,如果你得到一個segfault這是不太可能它是一個庫的問題(這是一個主要使用功能),它只是不能因錯位。 例如,由於緩沖區溢出,您的代碼很可能在某些地方表現出未定義的行為。 使用valgrind-fsanitize=address檢查指針。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM