【问题标题】:runtime error: load of misaligned address运行时错误:加载未对齐的地址
【发布时间】:2020-08-06 11:10:40
【问题描述】:

我最近遇到了这个错误。完整的错误如下。

external/libgit2/src/hash/sha1/sha1dc/sha1.c:438:2: runtime error: load of misaligned address 0x6110000205f5 for type 'const uint32_t', which requires 4 byte alignment
0x6110000205f5: note: pointer points here
 65 6e 74 20 64 35 63  30 62 31 35 64 61 30 36  33 38 65 35 31 61 64 31  38 66 37 64 35 37 31 37  36

我正在使用 libgit2 库,运行时错误发生在库代码中,所以我没有发布任何代码。问题是程序继续运行良好。这个错误到底是什么意思?我该如何解决呢?

【问题讨论】:

  • 那是 C 代码,而不是 C++ 代码。
  • 源代码中的错误或不兼容。其中大部分已在更新中得到修复,因此您要么拥有包含这些问题的旧库,要么拥有不兼容的平台(例如,报告没有对齐要求但实际上有)
  • 你使用的是什么版本的 libgit2?

标签: c++ c runtime-error libgit2


【解决方案1】:

0x6110000205f5 不是对齐地址。 (它是一个字节到 4 字节对齐)。 如果您将未对齐的指针传递给代码,就会发生这种情况。

您可以手动执行此操作,也可以使用 memalign family 或 Windows _aligned_alloc 中的函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 2022-11-11
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多