Trace

Still requires a few fixes, but the main part is done.
Since header->stack is fixed size, you easily can hit this BUG_ON.
Consider that we capture header->stack in a very deep recursive function, so that bottom of the stack is trimmer. And then return from the recursive function all the way up and try to restore the stack from trace. There will be more func_exit events than header->stack size.