Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.Net - what is an "unwind"?

While answering this question I noticed that I got the following dialog while atempting to move the "cursor" while an exception was being handled:

Unable to set the next statement to this location. The attempt to unwind the callstack failed.

Unwinding is not possible in the following scenarios:

  1. Debugging was started via Just-In-Time debugging.
  2. An unwind is in progress
  3. A System.StackOverflowException or System.Threading.ThreadAbortException exception has been thrown.

What exactly is an unwind?

like image 854
Justin Avatar asked Jan 05 '10 11:01

Justin


1 Answers

It's me!

No, in this context it typically refers to the process of stepping ("backwards"/"upwards") through a stack, removing successive frames until you've come back to the desired level. Typical stacks are (of course) very linear in their structure, frames are stacked end-to-end after each other, so there's not really much literal unwinding going on, but that's what it's called.

This Wikipedia page has more detail.

like image 58
unwind Avatar answered Oct 17 '22 15:10

unwind