0

我正在研究 stm32f469 做一些裸机代码以尝试使用 libtomcrypt / libtomfastmath 库。我正在尝试调试的代码已经过 valgrind 的检查,并且可以在许多平台上运行,例如 macos、raspberrypi、ios、android。

为了简单起见,我正在执行以下操作,即int register_hash(const struct ltc_hash_descriptor *hash)使用 const 静态变量调用此函数,方法是为其提供地址:register_hash(&sha256_desc)。问题是,一旦我在函数内部,hash指针就是NULL,我不知道为什么。

我在想这将是一个堆栈溢出,所以我用常量值预先填充了堆栈,0xdeadbeef并检查了所有这些值是否都被擦除,结果是堆栈没有溢出。

调试时,我可以验证返回的地址的值,&sha256_desc并且内存也没有损坏。

我没有进行可能溢出和破坏内存的动态分配或缓冲区填充。

我正在使用arm-none-eabi-gcc7-2017-q4-major 版本进行编译。

我主要是在寻找一些可能的问题来源,因为我已经没有想法了。

4

1 回答 1

0

感谢@Ctx 的评论,我通过在一个地方编译所有文件而不是编译稍后链接到我的程序的静态库来解决了这个问题。

我不知道是什么问题,因为我有新的问题阻止了我,我不会尝试进一步调查。

于 2018-07-04T16:27:59.783 回答