\hypertarget{structgymbo_1_1SymState}{}\doxysection{gymbo\+::Sym\+State Struct Reference}
\label{structgymbo_1_1SymState}\index{gymbo::SymState@{gymbo::SymState}}


Struct representing the symbolic state of the symbolic execution.  




{\ttfamily \#include $<$type.\+h$>$}



Collaboration diagram for gymbo\+::Sym\+State\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=310pt]{structgymbo_1_1SymState__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{structgymbo_1_1SymState_a8cfdb464cd87ab23ce3f4f4861b7ade2}{Sym\+State}} ()
\begin{DoxyCompactList}\small\item\em Default constructor for symbolic state. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structgymbo_1_1SymState_a230dffcb41f507b03f40d886d67a1bdb}{Sym\+State}} (int \mbox{\hyperlink{structgymbo_1_1SymState_a7dfef12dd646e4644c5931c4e65779ce}{pc}}, int \mbox{\hyperlink{structgymbo_1_1SymState_a4c7ebe9a103e0b7a60633cca1f82b88f}{var\+\_\+cnt}}, \mbox{\hyperlink{namespacegymbo_a93394c86b71f9947e9d17b61013e600c}{Mem}} \&\mbox{\hyperlink{structgymbo_1_1SymState_ae2ea8fcc287983a5bc53e81893e5a2ea}{mem}}, \mbox{\hyperlink{namespacegymbo_ac714ceb538af2de2adce25193f0e5eaf}{SMem}} \&\mbox{\hyperlink{structgymbo_1_1SymState_a85b48b53e8e5301b88c53ba7d34f0b3c}{smem}}, \mbox{\hyperlink{classgymbo_1_1Linkedlist}{Linkedlist}}$<$ \mbox{\hyperlink{structgymbo_1_1Sym}{Sym}} $>$ \&\mbox{\hyperlink{structgymbo_1_1SymState_a6aa224acae7f54e2f67a708be6cd0b42}{symbolic\+\_\+stack}}, std\+::vector$<$ \mbox{\hyperlink{structgymbo_1_1Sym}{Sym}} $>$ \&\mbox{\hyperlink{structgymbo_1_1SymState_a33bd74a7fdeee5aeecc51a750944efcc}{path\+\_\+constraints}}, \mbox{\hyperlink{structgymbo_1_1SymProb}{Sym\+Prob}} $\ast$\mbox{\hyperlink{structgymbo_1_1SymState_a0bf77b27d1f40432e784a7d5b03f2a2c}{p}}, \mbox{\hyperlink{structgymbo_1_1SymProb}{Sym\+Prob}} $\ast$\mbox{\hyperlink{structgymbo_1_1SymState_a0dd842291d4e8fe797b05178b5e4e80e}{cond\+\_\+p}}, bool \mbox{\hyperlink{structgymbo_1_1SymState_a1d35d88b07b580a6eb2de39a861793cd}{has\+\_\+observed\+\_\+p\+\_\+cond}})
\begin{DoxyCompactList}\small\item\em Constructor for symbolic state with specified values. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structgymbo_1_1SymState}{Sym\+State}} $\ast$ \mbox{\hyperlink{structgymbo_1_1SymState_a5184bb760ff61b03f6573d59824fd9c3}{copy}} ()
\begin{DoxyCompactList}\small\item\em Create a copy object. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{structgymbo_1_1SymState_ae8fe5bb8fa776a333997ff5d6df7af4a}{set\+\_\+concrete\+\_\+val}} (int var\+\_\+id, float val)
\begin{DoxyCompactList}\small\item\em Sets a concrete value for a variable in the symbolic state. \end{DoxyCompactList}\item 
std\+::string \mbox{\hyperlink{structgymbo_1_1SymState_ad96c387dd8c5c5a6fc118655bb179735}{to\+String}} (bool include\+\_\+memory=true) const
\begin{DoxyCompactList}\small\item\em Returns the human-\/redable string representation of concrete memory, symbolic memory and path constraints. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{structgymbo_1_1SymState_a62fb7677e73868615dc36e775c112643}{print}} () const
\begin{DoxyCompactList}\small\item\em Prints a human-\/readable representation of the symbolic state. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{structgymbo_1_1SymState_a7dfef12dd646e4644c5931c4e65779ce}{pc}}
\item 
int \mbox{\hyperlink{structgymbo_1_1SymState_a4c7ebe9a103e0b7a60633cca1f82b88f}{var\+\_\+cnt}}
\item 
\mbox{\hyperlink{namespacegymbo_a93394c86b71f9947e9d17b61013e600c}{Mem}} \mbox{\hyperlink{structgymbo_1_1SymState_ae2ea8fcc287983a5bc53e81893e5a2ea}{mem}}
\item 
\mbox{\hyperlink{namespacegymbo_ac714ceb538af2de2adce25193f0e5eaf}{SMem}} \mbox{\hyperlink{structgymbo_1_1SymState_a85b48b53e8e5301b88c53ba7d34f0b3c}{smem}}
\item 
\mbox{\hyperlink{classgymbo_1_1Linkedlist}{Linkedlist}}$<$ \mbox{\hyperlink{structgymbo_1_1Sym}{Sym}} $>$ \mbox{\hyperlink{structgymbo_1_1SymState_a6aa224acae7f54e2f67a708be6cd0b42}{symbolic\+\_\+stack}}
\item 
std\+::vector$<$ \mbox{\hyperlink{structgymbo_1_1Sym}{Sym}} $>$ \mbox{\hyperlink{structgymbo_1_1SymState_a33bd74a7fdeee5aeecc51a750944efcc}{path\+\_\+constraints}}
\item 
\mbox{\hyperlink{structgymbo_1_1SymProb}{Sym\+Prob}} $\ast$ \mbox{\hyperlink{structgymbo_1_1SymState_a0bf77b27d1f40432e784a7d5b03f2a2c}{p}}
\item 
\mbox{\hyperlink{structgymbo_1_1SymProb}{Sym\+Prob}} $\ast$ \mbox{\hyperlink{structgymbo_1_1SymState_a0dd842291d4e8fe797b05178b5e4e80e}{cond\+\_\+p}}
\item 
bool \mbox{\hyperlink{structgymbo_1_1SymState_a1d35d88b07b580a6eb2de39a861793cd}{has\+\_\+observed\+\_\+p\+\_\+cond}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Struct representing the symbolic state of the symbolic execution. 

\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{structgymbo_1_1SymState_a8cfdb464cd87ab23ce3f4f4861b7ade2}\label{structgymbo_1_1SymState_a8cfdb464cd87ab23ce3f4f4861b7ade2}} 
\index{gymbo::SymState@{gymbo::SymState}!SymState@{SymState}}
\index{SymState@{SymState}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{SymState()}{SymState()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily gymbo\+::\+Sym\+State\+::\+Sym\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Default constructor for symbolic state. 

\mbox{\Hypertarget{structgymbo_1_1SymState_a230dffcb41f507b03f40d886d67a1bdb}\label{structgymbo_1_1SymState_a230dffcb41f507b03f40d886d67a1bdb}} 
\index{gymbo::SymState@{gymbo::SymState}!SymState@{SymState}}
\index{SymState@{SymState}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{SymState()}{SymState()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily gymbo\+::\+Sym\+State\+::\+Sym\+State (\begin{DoxyParamCaption}\item[{int}]{pc,  }\item[{int}]{var\+\_\+cnt,  }\item[{\mbox{\hyperlink{namespacegymbo_a93394c86b71f9947e9d17b61013e600c}{Mem}} \&}]{mem,  }\item[{\mbox{\hyperlink{namespacegymbo_ac714ceb538af2de2adce25193f0e5eaf}{SMem}} \&}]{smem,  }\item[{\mbox{\hyperlink{classgymbo_1_1Linkedlist}{Linkedlist}}$<$ \mbox{\hyperlink{structgymbo_1_1Sym}{Sym}} $>$ \&}]{symbolic\+\_\+stack,  }\item[{std\+::vector$<$ \mbox{\hyperlink{structgymbo_1_1Sym}{Sym}} $>$ \&}]{path\+\_\+constraints,  }\item[{\mbox{\hyperlink{structgymbo_1_1SymProb}{Sym\+Prob}} $\ast$}]{p,  }\item[{\mbox{\hyperlink{structgymbo_1_1SymProb}{Sym\+Prob}} $\ast$}]{cond\+\_\+p,  }\item[{bool}]{has\+\_\+observed\+\_\+p\+\_\+cond }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Constructor for symbolic state with specified values. 


\begin{DoxyParams}{Parameters}
{\em pc} & Program counter. \\
\hline
{\em var\+\_\+cnt} & Variable count. \\
\hline
{\em mem} & Concrete memory. \\
\hline
{\em smem} & Symbolic memory. \\
\hline
{\em symbolic\+\_\+stack} & Symbolic stack. \\
\hline
{\em path\+\_\+constraints} & Vector of symbolic path constraints. \\
\hline
{\em p} & Symbolic probability of the state being reached. \\
\hline
{\em cond\+\_\+p} & Symbolic conditional probability of the state being reached. \\
\hline
{\em has\+\_\+observed\+\_\+p\+\_\+cond} & Flag indicating whether path\+\_\+constraints contains probabilistic path conditions. \\
\hline
\end{DoxyParams}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{structgymbo_1_1SymState_a5184bb760ff61b03f6573d59824fd9c3}\label{structgymbo_1_1SymState_a5184bb760ff61b03f6573d59824fd9c3}} 
\index{gymbo::SymState@{gymbo::SymState}!copy@{copy}}
\index{copy@{copy}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{copy()}{copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structgymbo_1_1SymState}{Sym\+State}}$\ast$ gymbo\+::\+Sym\+State\+::copy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Create a copy object. 

\mbox{\Hypertarget{structgymbo_1_1SymState_a62fb7677e73868615dc36e775c112643}\label{structgymbo_1_1SymState_a62fb7677e73868615dc36e775c112643}} 
\index{gymbo::SymState@{gymbo::SymState}!print@{print}}
\index{print@{print}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{print()}{print()}}
{\footnotesize\ttfamily void gymbo\+::\+Sym\+State\+::print (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Prints a human-\/readable representation of the symbolic state. 

\mbox{\Hypertarget{structgymbo_1_1SymState_ae8fe5bb8fa776a333997ff5d6df7af4a}\label{structgymbo_1_1SymState_ae8fe5bb8fa776a333997ff5d6df7af4a}} 
\index{gymbo::SymState@{gymbo::SymState}!set\_concrete\_val@{set\_concrete\_val}}
\index{set\_concrete\_val@{set\_concrete\_val}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{set\_concrete\_val()}{set\_concrete\_val()}}
{\footnotesize\ttfamily void gymbo\+::\+Sym\+State\+::set\+\_\+concrete\+\_\+val (\begin{DoxyParamCaption}\item[{int}]{var\+\_\+id,  }\item[{float}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Sets a concrete value for a variable in the symbolic state. 


\begin{DoxyParams}{Parameters}
{\em var\+\_\+id} & Index of the variable. \\
\hline
{\em val} & Concrete value to set. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{structgymbo_1_1SymState_ad96c387dd8c5c5a6fc118655bb179735}\label{structgymbo_1_1SymState_ad96c387dd8c5c5a6fc118655bb179735}} 
\index{gymbo::SymState@{gymbo::SymState}!toString@{toString}}
\index{toString@{toString}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{toString()}{toString()}}
{\footnotesize\ttfamily std\+::string gymbo\+::\+Sym\+State\+::to\+String (\begin{DoxyParamCaption}\item[{bool}]{include\+\_\+memory = {\ttfamily true} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns the human-\/redable string representation of concrete memory, symbolic memory and path constraints. 


\begin{DoxyParams}{Parameters}
{\em include\+\_\+memory} & If set to true, add the concrete and symbolic memories (default true). \\
\hline
\end{DoxyParams}


\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{structgymbo_1_1SymState_a0dd842291d4e8fe797b05178b5e4e80e}\label{structgymbo_1_1SymState_a0dd842291d4e8fe797b05178b5e4e80e}} 
\index{gymbo::SymState@{gymbo::SymState}!cond\_p@{cond\_p}}
\index{cond\_p@{cond\_p}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{cond\_p}{cond\_p}}
{\footnotesize\ttfamily \mbox{\hyperlink{structgymbo_1_1SymProb}{Sym\+Prob}}$\ast$ gymbo\+::\+Sym\+State\+::cond\+\_\+p}

Symbolic conditional probability of the state being reached \mbox{\Hypertarget{structgymbo_1_1SymState_a1d35d88b07b580a6eb2de39a861793cd}\label{structgymbo_1_1SymState_a1d35d88b07b580a6eb2de39a861793cd}} 
\index{gymbo::SymState@{gymbo::SymState}!has\_observed\_p\_cond@{has\_observed\_p\_cond}}
\index{has\_observed\_p\_cond@{has\_observed\_p\_cond}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{has\_observed\_p\_cond}{has\_observed\_p\_cond}}
{\footnotesize\ttfamily bool gymbo\+::\+Sym\+State\+::has\+\_\+observed\+\_\+p\+\_\+cond}

$<$ Flag indicating whether path\+\_\+constraints contains probabilistic path conditions. \mbox{\Hypertarget{structgymbo_1_1SymState_ae2ea8fcc287983a5bc53e81893e5a2ea}\label{structgymbo_1_1SymState_ae2ea8fcc287983a5bc53e81893e5a2ea}} 
\index{gymbo::SymState@{gymbo::SymState}!mem@{mem}}
\index{mem@{mem}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{mem}{mem}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespacegymbo_a93394c86b71f9947e9d17b61013e600c}{Mem}} gymbo\+::\+Sym\+State\+::mem}

Concrete memory. \mbox{\Hypertarget{structgymbo_1_1SymState_a0bf77b27d1f40432e784a7d5b03f2a2c}\label{structgymbo_1_1SymState_a0bf77b27d1f40432e784a7d5b03f2a2c}} 
\index{gymbo::SymState@{gymbo::SymState}!p@{p}}
\index{p@{p}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{p}{p}}
{\footnotesize\ttfamily \mbox{\hyperlink{structgymbo_1_1SymProb}{Sym\+Prob}}$\ast$ gymbo\+::\+Sym\+State\+::p}

Symbolic probability of the state being reached \mbox{\Hypertarget{structgymbo_1_1SymState_a33bd74a7fdeee5aeecc51a750944efcc}\label{structgymbo_1_1SymState_a33bd74a7fdeee5aeecc51a750944efcc}} 
\index{gymbo::SymState@{gymbo::SymState}!path\_constraints@{path\_constraints}}
\index{path\_constraints@{path\_constraints}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{path\_constraints}{path\_constraints}}
{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{structgymbo_1_1Sym}{Sym}}$>$ gymbo\+::\+Sym\+State\+::path\+\_\+constraints}

Vector of symbolic path constraints. \mbox{\Hypertarget{structgymbo_1_1SymState_a7dfef12dd646e4644c5931c4e65779ce}\label{structgymbo_1_1SymState_a7dfef12dd646e4644c5931c4e65779ce}} 
\index{gymbo::SymState@{gymbo::SymState}!pc@{pc}}
\index{pc@{pc}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{pc}{pc}}
{\footnotesize\ttfamily int gymbo\+::\+Sym\+State\+::pc}

Program counter. \mbox{\Hypertarget{structgymbo_1_1SymState_a85b48b53e8e5301b88c53ba7d34f0b3c}\label{structgymbo_1_1SymState_a85b48b53e8e5301b88c53ba7d34f0b3c}} 
\index{gymbo::SymState@{gymbo::SymState}!smem@{smem}}
\index{smem@{smem}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{smem}{smem}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespacegymbo_ac714ceb538af2de2adce25193f0e5eaf}{SMem}} gymbo\+::\+Sym\+State\+::smem}

Symbolic memory. \mbox{\Hypertarget{structgymbo_1_1SymState_a6aa224acae7f54e2f67a708be6cd0b42}\label{structgymbo_1_1SymState_a6aa224acae7f54e2f67a708be6cd0b42}} 
\index{gymbo::SymState@{gymbo::SymState}!symbolic\_stack@{symbolic\_stack}}
\index{symbolic\_stack@{symbolic\_stack}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{symbolic\_stack}{symbolic\_stack}}
{\footnotesize\ttfamily \mbox{\hyperlink{classgymbo_1_1Linkedlist}{Linkedlist}}$<$\mbox{\hyperlink{structgymbo_1_1Sym}{Sym}}$>$ gymbo\+::\+Sym\+State\+::symbolic\+\_\+stack}

Symbolic stack. \mbox{\Hypertarget{structgymbo_1_1SymState_a4c7ebe9a103e0b7a60633cca1f82b88f}\label{structgymbo_1_1SymState_a4c7ebe9a103e0b7a60633cca1f82b88f}} 
\index{gymbo::SymState@{gymbo::SymState}!var\_cnt@{var\_cnt}}
\index{var\_cnt@{var\_cnt}!gymbo::SymState@{gymbo::SymState}}
\doxysubsubsection{\texorpdfstring{var\_cnt}{var\_cnt}}
{\footnotesize\ttfamily int gymbo\+::\+Sym\+State\+::var\+\_\+cnt}

Variable count. 

The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
libgymbo/\mbox{\hyperlink{type_8h}{type.\+h}}\end{DoxyCompactItemize}
