Msg/ClobberedSP: Difference between revisions
From CPUlator Wiki
< Msg
< Msg
Line 4: | Line 4: | ||
==== ARMv7 ==== | ==== ARMv7 ==== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="C" line highlight="10"> | ||
.global _start | .global _start | ||
_start: | _start: |
Revision as of 23:21, 9 March 2019
A function should always ensure that the stack pointer is the same at the entry and exit of the function. This message tells you that this didn't happen: the stack pointer was different at the function return than when the function was first called.
Examples
ARMv7
.global _start
_start:
mov sp, #0x1000 // Initialize SP to something sane
bl MyFunction
nop
nop
# ...
MyFunction:
push {r4} // Changes SP
bx lr // Return, but SP is different
Disabling this message
This debugging check can be disabled in the Debugging Checks section of the Settings box: Function clobbered ra or sp.