\subsection{Class CodeRegion} \definedin{CodeSource.h} The CodeRegion interface is an accounting structure used to divide CodeSources into distinct regions. This interface is mostly of interest to CodeSource implementors. \begin{apient} void names(Address addr, vector & names) \end{apient} \apidesc{Fills the provided vector with any names associated with the function at a given address in the region, e.g. symbol names in an ELF or PE binary.} \begin{apient} virtual bool findCatchBlock(Address addr, Address & catchStart) \end{apient} \apidesc{Finds the exception handler associated with an address, if one exists. This routine is only implemented for binary code sources that support structured exception handling, such as the SymtabAPI-based SymtabCodeSource provided as part of the ParseAPI.} \begin{apient} Address low() \end{apient} \apidesc{The lower bound of the interval of address space covered by this region.} \begin{apient} Address high() \end{apient} \apidesc{The upper bound of the interval of address space covered by this region.} \begin{apient} bool contains(Address addr) \end{apient} \apidesc{Returns {\scshape true} if $\code{addr} \in [\code{low()},\code{high()})$, {\scshape false} otherwise.} \begin{apient} virtual bool wasUserAdded() const \end{apient} \apidesc{Return {\scshape true} if this region was added by the user, {\scshape false} otherwise.}