C TLB(加载字)异常是否会由不正确的编译器选项使用引起?

C TLB(加载字)异常是否会由不正确的编译器选项使用引起?,c,exception,memory,vxworks,tlb,C,Exception,Memory,Vxworks,Tlb,我在VxWorks中遇到TLB(加载字或指令获取)异常。当我进一步分析时,我了解到所引用的内存地址并不指向有效的内存位置 据我所知,由于某些内存损坏(可能的内存覆盖),可能会发生此问题。但是,在purify下,在Windows中分析代码和执行同一段代码不会显示任何内存错误 所以,我想知道是否有编译器选项会导致这种情况?可能吗 此外,还有关于如何调试此类问题的指针吗?是的,当使用某些编译器标志编译的代码使用某些属性访问内存时,某些处理器架构和抛出TLB异常。e、 g.未缓存内存上的PowerPC,

我在VxWorks中遇到TLB(加载字或指令获取)异常。当我进一步分析时,我了解到所引用的内存地址并不指向有效的内存位置

据我所知,由于某些内存损坏(可能的内存覆盖),可能会发生此问题。但是,在purify下,在Windows中分析代码和执行同一段代码不会显示任何内存错误

所以,我想知道是否有编译器选项会导致这种情况?可能吗


此外,还有关于如何调试此类问题的指针吗?

是的,当使用某些编译器标志编译的代码使用某些属性访问内存时,某些处理器架构和抛出TLB异常。e、 g.未缓存内存上的PowerPC,带有编译器标志,可导致对未对齐数据的对齐访问


是的,但如果没有其他信息,“是”对您没有帮助。

可能是对齐问题?例如,在windows中,4字节对齐可以,但在vxWorks中需要8字节对齐。仔细检查代码中的任何强制转换。可疑。无法找到破坏内存的语句并不意味着它不存在。您无法在具有不同堆管理器的不同操作系统上获得可比较的结果。