For this to actually work we need to:
- Disable skipping function prologues using "settings set target.skip-prologue false", set a breakpoint at the function we want to trace and store breakpoint in "trace_breakpoint", restore skipping function prologues
- make a local variable "tracing_function = False"
- when we stop, detect if the "trace_breakpoint" was hit and set "tracing_function = True" if it was. Calculate the the return address using the thread's backtrace and set a breakpoint there, store breakpoint in local variable "trace_return_breakpoint"
- when we continue check "tracing_function" and step if it is true, and continue it not
- When we stop check if "trace_return_breakpoint" was hit and if so, set "tracing_function = False"