This document describes how to analyze and retrieve the call stack for an executing program written in C or C++. The process can be quite complicated because of the unique features of certain processors and operating systems that are sometimes important when making the analysis. We have attempted to make things easier by providing several examples; after reading the general descriptions, we suggest you look at the examples and return to reread the descriptive sections in the context of an example