用于显示交流代码溢出的工具

Gui*_*ssé 5 c assembly

我的c代码中有溢出的工具吗?

我的意思是看看哪些代码块可能会使寄存器移动到内存中.

编辑:什么是泄漏:

在某些时候编译代码的过程中,您必须进行寄存器分配.编译器将执行干扰图("变量"是节点,如果它们同时存在则它们是连接的).从这一点开始,有一个线性过程将进行图形着色:为每个变量分配一个不会干扰其他变量的寄存器......如果没有足够的寄存器来为图形着色,算法将失败并且变量(寄存器) )将被溢出(移动到记忆中).

从软件工程的角度来看,这意味着您应该始终最小化变量,以便最大限度地减少泄漏的可能性.

当您想要优化代码时,您应该寻找那些类型的东西,因为溢出会给予额外的时间来读/写内存.我正在寻找一个工具或编译器标志,可以告诉我哪里溢出,所以我可以优化.

wno*_*ise 4

据我所知没有这样的工具。

由于有关溢出的决策因编译器、编译器版本甚至给定编译器的给定版本内的设置而异,因此任何此类工具都必须与编译器紧密耦合,并且可能只支持一个编译器。

另一方面,您始终可以自己查看生成的程序集,看看给定的变量是否溢出。