[#BloombergLP-balst-ResolverImpl-0e]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/balst.adoc[balst]::xref:BloombergLP/balst/ResolverImpl-0f.adoc[ResolverImpl]&lt;xref:BloombergLP/balst/ObjectFileFormat/Elf.adoc[ObjectFileFormat::Elf]&gt;
:relfileprefix: ../../
:mrdocs:

This class provides a public static `resolve` method that, given a vector of `StackTraceFrame`s that have only their `address` fields set, resolves as many other fields in those frames as possible&period; The Elf object file format is used on Linux and Solaris platforms&period; On Linux, some Elf sections contain data in the DWARF format, which makes it possible to resolve line numbers and file names&period;

== Synopsis

Declared in `&lt;balst&lowbar;resolverimpl&lowbar;elf&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;&gt;
class xref:BloombergLP/balst/ResolverImpl-0f.adoc[ResolverImpl]&lt;xref:BloombergLP/balst/ObjectFileFormat/Elf.adoc[ObjectFileFormat::Elf]&gt;;
----

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balst/ResolverImpl-0e/numUnmatchedFrames.adoc[`numUnmatchedFrames`] 
| Return the number of frames in the stack trace that are still unmatched&period;
| xref:BloombergLP/balst/ResolverImpl-0e/processLoadedImage.adoc[`processLoadedImage`] 
| Process a loaded image found via the link map, either the main program or some shared library&period; The specified `libraryFileName` is the name of the file containing the image&period; The specified `programHeaders` is a pointer to an array of elf program headers and the specified `numProgramHeaders` is its length, it is a `void &ast;` because the type `ElfProgramHeader` is local to the implementation file&period; Specify one of `textSegPtr` and `baseAddress`, and the other as 0, this method will infer the one specified as 0 from the other&period; Specify `isMainExecutable`, indicating whether the image is the main executable&period; Return 0 on success and a non&hyphen;zero value otherwise&period; Note that this method is not to be called by external users of this component, it is only public so a static routine in the implementation file can call it&period; Also note that if `isMainExecutable` is set, `libraryFileName` is ignored and the `argv&lsqb;0&rsqb;` the program was called with is used in its place&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balst/ResolverImpl-0e/resolve.adoc[`resolve`] 
| Populate information for the specified `&ast;stackTrace`, which contains a sequence of randomly&hyphen;accessible stack trace frames&period; Specify `demanglingPreferredFlag`, to determine whether demangling is to occur&period; The behavior is undefined unless all the `address` field in `&ast;stackTrace` are valid and other fields are invalid&period;
| xref:BloombergLP/balst/ResolverImpl-0e/test.adoc[`test`] 
| This function is just there to test how code deals with inline functions in an include file&period; It does not provide any otherwise useful functionality&period; Return a line number near the beginning of the function in the low&hyphen;order 14 bits of the result&period; Other bits of the result are to be considered garbage&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
