Unwind the simulated call stack of the current thread.
- If an exception trace is not produced, before a new exception occurs, you must perform an explicit simulated call stack unwinding, to discard the current exception trace. If you don't properly unwind the simulated stack, the stored trace will mess with the next attempt to obtain a stack trace. Nevertheless, if the trace was actually created, a call to unwind doesn't affect the tracer object state at all (nothing to dispose), so it is not an error to call it once or even more times even when the trace was produced
Definition at line 778 of file tracer.cpp.
References csdbg::process::current_thread(), csdbg::util::lock(), m_proc, csdbg::util::unlock(), and csdbg::thread::unwind().
Referenced by csdbg::operator<<(), and trace().
process * m_proc
static void lock()
Lock the global access mutex.
static void unlock()
Unlock the global access mutex.
virtual thread & unwind()
Unwind the simulated call stack to meet the real call stack.
virtual thread * current_thread()
Get the currently executing thread.