Files
TheRock/rocm-systems/projects/rocprofiler-systems/external/dyninst/stackwalk/doc/API/SymbolLookup.tex
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

57 lines
2.0 KiB
TeX

\subsubsection{Class SymbolLookup}
\definedin{symlookup.h}
The \code{SymbolLookup} virtual class is an interface for associating a symbolic
name with a stack frame. Each \code{Frame} object contains an address (the RA)
pointing into the function (or function-like object) that created its stack
frame. However, users do not always want to deal with addresses when symbolic
names are more convenient. This class is an interface for mapping a \code{Frame} object's RA into a name.
In addition to getting a name, this class can also associate an opaque object
(via a \code{void*}) with a Frame object. It is up to the \code{SymbolLookup}
implementation what to return in this opaque object.
The default implementation of \code{SymbolLookup} provided by StackwalkerAPI
uses the \code{SymLite} tool to lookup symbol names. It returns a Symbol
object in the anonymous \code{void*}.
\begin{apient}
SymbolLookup(std::string exec_path = "");
\end{apient}
\apidesc{Constructor for a \code{SymbolLookup} object.}
\begin{apient}
virtual bool lookupAtAddr(Address addr,
string &out_name,
void* &out_value) = 0
\end{apient}
\apidesc{
This method takes an address, \code{addr}, as input and returns the function name,
\code{out\_name}, and an opaque value, \code{out\_value}, at that address. Output parameter
\code{out\_name} should be the name of the function that contains
\code{addr}. Output
parameter \code{out\_value} can be any opaque value determined by the
\code{SymbolLookup}
implementation. The values returned are used by the \code{Frame::getName} and
\code{Frame::getObject} functions.
This method returns \code{true} on success and \code{false} on error.
}
\begin{apient}
virtual Walker *getWalker()
\end{apient}
\apidesc{
This method returns the \code{Walker} object associated with this
\code{SymbolLookup}.
}
\begin{apient}
virtual ProcessState *getProcessSate()
\end{apient}
\apidesc{
This method returns the \code{ProcessState} object associated with this
\code{SymbolLookup}.
}