Step-by-step execution of BGE mainloop for debugging?
A simple way to go would be enable the console and to add a Always actuator somewhere with pulse mode enabled, linked to a Python controller using the following "script" :

input("Next step ")


Then at each step the python script will be blocking the whole execution until you press enter for the input to return.