解决__strcpy_sse2_unaligned()问题的正确方法应该是什么?即。strcpy(enc_buf, base64_encode(buf));会导致gdb中的__strcpy_sse2_unaligned(),那么预防这种事情的预防措施是什么呢?
发布于 2017-04-28 18:01:13
编译器无法确定源和目标char*是否对齐(通常是word或四字对齐),因此正在备份到未对齐但可能优化的strcpy例程。您需要显式地提示它正在做的错误猜测;否则,它就会放弃: SSE通常不允许对齐访问,或者仍然非常慢。
但是,如果您有一个分段错误,这很不可能是一个库问题(它是一个被广泛使用的函数),它不可能是由于不对齐而引起的。例如,由于缓冲区溢出,您的代码很可能在某个地方出现了未定义的行为。使用valgrind或-fsanitize=address检查您的指针。
https://stackoverflow.com/questions/43685987
复制相似问题