\hypertarget{a09800}{}\section{Stack\+Walker Class Reference}
\label{a09800}\index{Stack\+Walker@{Stack\+Walker}}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a09804}{Callstack\+Entry}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09800_aa09267d1a2142548625d11131fd9f6d2}\label{a09800_aa09267d1a2142548625d11131fd9f6d2}} 
enum {\bfseries Stack\+Walk\+Options} \{ \newline
{\bfseries Retrieve\+None} = 0, 
{\bfseries Retrieve\+Symbol} = 1, 
{\bfseries Retrieve\+Line} = 2, 
{\bfseries Retrieve\+Module\+Info} = 4, 
\newline
{\bfseries Retrieve\+File\+Version} = 8, 
{\bfseries Retrieve\+Verbose} = 0xF, 
{\bfseries Sym\+Build\+Path} = 0x10, 
{\bfseries Sym\+Use\+Sym\+Srv} = 0x20, 
\newline
{\bfseries Sym\+All} = 0x30, 
{\bfseries Options\+All} = 0x3F
 \}
\item 
\mbox{\Hypertarget{a09800_a5db0f8d1b2fe128c5b5d14dc7c0f8177}\label{a09800_a5db0f8d1b2fe128c5b5d14dc7c0f8177}} 
enum \{ {\bfseries S\+T\+A\+C\+K\+W\+A\+L\+K\+\_\+\+M\+A\+X\+\_\+\+N\+A\+M\+E\+L\+EN} = 1024
 \}
\item 
\mbox{\Hypertarget{a09800_a547d82a4196c05a09fd365d83ca9cd44}\label{a09800_a547d82a4196c05a09fd365d83ca9cd44}} 
typedef enum Stack\+Walker\+::\+Stack\+Walk\+Options {\bfseries Stack\+Walk\+Options}
\item 
\mbox{\Hypertarget{a09800_abb2bbe1a00de4af59bac8ebca3c642b4}\label{a09800_abb2bbe1a00de4af59bac8ebca3c642b4}} 
typedef B\+O\+OL(\+\_\+\+\_\+stdcall $\ast$ {\bfseries P\+Read\+Process\+Memory\+Routine}) (H\+A\+N\+D\+LE h\+Process, D\+W\+O\+R\+D64 qw\+Base\+Address, P\+V\+O\+ID lp\+Buffer, D\+W\+O\+RD n\+Size, L\+P\+D\+W\+O\+RD lp\+Number\+Of\+Bytes\+Read, L\+P\+V\+O\+ID p\+User\+Data)
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09800_a70ca0d3bd1d2b015815fc951ab0442df}\label{a09800_a70ca0d3bd1d2b015815fc951ab0442df}} 
{\bfseries Stack\+Walker} (int options=Options\+All, L\+P\+C\+S\+TR sz\+Sym\+Path=N\+U\+LL, D\+W\+O\+RD dw\+Process\+Id=Get\+Current\+Process\+Id(), H\+A\+N\+D\+LE h\+Process=Get\+Current\+Process())
\item 
\mbox{\Hypertarget{a09800_af36f5f0c916b2f350363c7ec8a8de15a}\label{a09800_af36f5f0c916b2f350363c7ec8a8de15a}} 
{\bfseries Stack\+Walker} (D\+W\+O\+RD dw\+Process\+Id, H\+A\+N\+D\+LE h\+Process)
\item 
\mbox{\Hypertarget{a09800_a3e0e7f1329f594d89362309bf8fe2b21}\label{a09800_a3e0e7f1329f594d89362309bf8fe2b21}} 
B\+O\+OL {\bfseries Load\+Modules} ()
\item 
\mbox{\Hypertarget{a09800_a26bacb66734ee2d1de20d51070b825ba}\label{a09800_a26bacb66734ee2d1de20d51070b825ba}} 
B\+O\+OL {\bfseries Show\+Callstack} (H\+A\+N\+D\+LE h\+Thread=Get\+Current\+Thread(), const C\+O\+N\+T\+E\+XT $\ast$context=N\+U\+LL, P\+Read\+Process\+Memory\+Routine read\+Memory\+Function=N\+U\+LL, L\+P\+V\+O\+ID p\+User\+Data=N\+U\+LL)
\end{DoxyCompactItemize}
\subsection*{Protected Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09800_a6de6dcd460d11abee0c498fb55cba96e}\label{a09800_a6de6dcd460d11abee0c498fb55cba96e}} 
enum {\bfseries Callstack\+Entry\+Type} \{ {\bfseries first\+Entry}, 
{\bfseries next\+Entry}, 
{\bfseries last\+Entry}
 \}
\item 
\mbox{\Hypertarget{a09800_ad0ad9c321961aad36f54779a8ca4ec12}\label{a09800_ad0ad9c321961aad36f54779a8ca4ec12}} 
typedef struct \hyperlink{a09804}{Stack\+Walker\+::\+Callstack\+Entry} {\bfseries Callstack\+Entry}
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09800_a7feaf96c40d81dcbd0bfcd34f78eaa30}\label{a09800_a7feaf96c40d81dcbd0bfcd34f78eaa30}} 
virtual void {\bfseries On\+Sym\+Init} (L\+P\+C\+S\+TR sz\+Search\+Path, D\+W\+O\+RD sym\+Options, L\+P\+C\+S\+TR sz\+User\+Name)
\item 
\mbox{\Hypertarget{a09800_a64c6c648aee9a33e881f449aecd51912}\label{a09800_a64c6c648aee9a33e881f449aecd51912}} 
virtual void {\bfseries On\+Load\+Module} (L\+P\+C\+S\+TR img, L\+P\+C\+S\+TR mod, D\+W\+O\+R\+D64 base\+Addr, D\+W\+O\+RD size, D\+W\+O\+RD result, L\+P\+C\+S\+TR sym\+Type, L\+P\+C\+S\+TR pdb\+Name, U\+L\+O\+N\+G\+L\+O\+NG file\+Version)
\item 
\mbox{\Hypertarget{a09800_a0fbb480cd30e9ff437a4baf9a18c2372}\label{a09800_a0fbb480cd30e9ff437a4baf9a18c2372}} 
virtual void {\bfseries On\+Callstack\+Entry} (Callstack\+Entry\+Type e\+Type, \hyperlink{a09804}{Callstack\+Entry} \&entry)
\item 
\mbox{\Hypertarget{a09800_ab2220ae2084e72d2f0f005784c21e8dc}\label{a09800_ab2220ae2084e72d2f0f005784c21e8dc}} 
virtual void {\bfseries On\+Dbg\+Help\+Err} (L\+P\+C\+S\+TR sz\+Func\+Name, D\+W\+O\+RD gle, D\+W\+O\+R\+D64 addr)
\item 
\mbox{\Hypertarget{a09800_a20ec3b0a1ba7723e113889135989ea6b}\label{a09800_a20ec3b0a1ba7723e113889135989ea6b}} 
virtual void {\bfseries On\+Output} (L\+P\+C\+S\+TR sz\+Text)
\end{DoxyCompactItemize}
\subsection*{Static Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09800_a3428311b98b8e8366419e9e5467c294d}\label{a09800_a3428311b98b8e8366419e9e5467c294d}} 
static B\+O\+OL \+\_\+\+\_\+stdcall {\bfseries my\+Read\+Proc\+Mem} (H\+A\+N\+D\+LE h\+Process, D\+W\+O\+R\+D64 qw\+Base\+Address, P\+V\+O\+ID lp\+Buffer, D\+W\+O\+RD n\+Size, L\+P\+D\+W\+O\+RD lp\+Number\+Of\+Bytes\+Read)
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09800_a13524e6f4cd89a8b3a3fd378e3cd3f55}\label{a09800_a13524e6f4cd89a8b3a3fd378e3cd3f55}} 
\hyperlink{a09780}{Stack\+Walker\+Internal} $\ast$ {\bfseries m\+\_\+sw}
\item 
\mbox{\Hypertarget{a09800_a7db892daef90d499084f5e9dd5294ab9}\label{a09800_a7db892daef90d499084f5e9dd5294ab9}} 
H\+A\+N\+D\+LE {\bfseries m\+\_\+h\+Process}
\item 
\mbox{\Hypertarget{a09800_adf8bda5434856605a470d42c3db49b38}\label{a09800_adf8bda5434856605a470d42c3db49b38}} 
D\+W\+O\+RD {\bfseries m\+\_\+dw\+Process\+Id}
\item 
\mbox{\Hypertarget{a09800_a20279e66ed48886369111d47dee4762f}\label{a09800_a20279e66ed48886369111d47dee4762f}} 
B\+O\+OL {\bfseries m\+\_\+modules\+Loaded}
\item 
\mbox{\Hypertarget{a09800_aff1b39f2ea31f24b4a693928cdf5549d}\label{a09800_aff1b39f2ea31f24b4a693928cdf5549d}} 
L\+P\+S\+TR {\bfseries m\+\_\+sz\+Sym\+Path}
\item 
\mbox{\Hypertarget{a09800_a3534033da2986b16d5f15f0b4feefa54}\label{a09800_a3534033da2986b16d5f15f0b4feefa54}} 
int {\bfseries m\+\_\+options}
\item 
\mbox{\Hypertarget{a09800_acc7320865d2e5ce2d33536e94208c1f0}\label{a09800_acc7320865d2e5ce2d33536e94208c1f0}} 
int {\bfseries m\+\_\+\+Max\+Recursion\+Count}
\item 
\mbox{\Hypertarget{a09800_ab0d4fa92227f651635d04da2947b873a}\label{a09800_ab0d4fa92227f651635d04da2947b873a}} 
friend {\bfseries Stack\+Walker\+Internal}
\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 56 of file Stack\+Walker.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/\+Stack\+Walker/Stack\+Walker.\+hh\item 
Open\+Flipper/\+Stack\+Walker/Stack\+Walker.\+cc\end{DoxyCompactItemize}
