Optimization 如何通过Objdump文件识别寄存器溢出?

Optimization 如何通过Objdump文件识别寄存器溢出?,optimization,compiler-construction,cpu-architecture,Optimization,Compiler Construction,Cpu Architecture,通过查看objdump文件,如何知道寄存器溢出? 我的想法是,可以通过跟踪堆栈指针来实现:将sp移到函数序言和尾声之外,表示寄存器溢出 我想知道哪些代码行正在进行寄存器溢出。另外,指向全局变量(也指堆栈)的寄存器在哪里恢复 寄存器溢出不需要移动堆栈指针,局部变量可能会溢出到堆栈中,并在当前帧中持续直接从那里使用,编译器只使用堆栈帧及其偏移量,而不是寄存器 您最好的选择就是寻找不断读取和/或写入的内存地址。由于编译器缺陷,或者无法证明没有其他线程/代码单元通过addr访问某个局部变量(例如,如果变

通过查看objdump文件,如何知道寄存器溢出? 我的想法是,可以通过跟踪堆栈指针来实现:将
sp
移到函数序言和尾声之外,表示寄存器溢出


我想知道哪些代码行正在进行寄存器溢出。另外,指向全局变量(也指堆栈)的寄存器在哪里恢复

寄存器溢出不需要移动堆栈指针,局部变量可能会溢出到堆栈中,并在当前帧中持续直接从那里使用,编译器只使用堆栈帧及其偏移量,而不是寄存器

您最好的选择就是寻找不断读取和/或写入的内存地址。由于编译器缺陷,或者无法证明没有其他线程/代码单元通过addr访问某个局部变量(例如,如果变量地址被复制到范围之外的某个地方),甚至在存在可用寄存器的情况下也可能发生这种情况。在这种情况下,必须在内存中维护该变量