我已经移植了一个软件的源代码(在c中),它不是64位清理到64位.一般来说,我已经处理了与指针相关的问题;改变包含longs指针的整数,比较时使用的强制转换等.但是,我不知道如何测试这些.由于指针的大小加倍,我推断只有当尖头位置的位置大于0x0 … 0100000000(1后8个零)时才重要,但我怎么能保证呢?我应该在我的VM(OpenBSD)中运行很多东西来填充内存的基础,还是有另一种可行的方法呢?
总结:如何测试代码以检查amd64上是否存在(基于指针的)内存错误?
最佳答案 运行系统具有的所有自动化测试.
如果系统没有自动化测试,或者自动化测试覆盖率较差,那么您需要创建更多测试,可能还需要手动测试.
您必须安装32位版本的系统才能进行比较.
这样,您就可以区分移植过程中引入的旧错误和错误.如果系统对您来说是新的,那么这一点非常重要,因此您无法确切知道它应该如何工作.
如果系统相当大,那么自动执行针对两个版本运行相同测试并比较结果(输出文件,数据库状态等)的过程可能是个好主意.