[#BloombergLP-balst-ResolverImpl-0e] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/balst.adoc[balst]::xref:BloombergLP/balst/ResolverImpl-0f.adoc[ResolverImpl]<xref:BloombergLP/balst/ObjectFileFormat/Elf.adoc[ObjectFileFormat::Elf]> :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. The Elf object file format is used on Linux and Solaris platforms. On Linux, some Elf sections contain data in the DWARF format, which makes it possible to resolve line numbers and file names. == Synopsis Declared in `<balst_resolverimpl_elf.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<> class xref:BloombergLP/balst/ResolverImpl-0f.adoc[ResolverImpl]<xref:BloombergLP/balst/ObjectFileFormat/Elf.adoc[ObjectFileFormat::Elf]>; ---- == 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. | 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. The specified `libraryFileName` is the name of the file containing the image. The specified `programHeaders` is a pointer to an array of elf program headers and the specified `numProgramHeaders` is its length, it is a `void *` because the type `ElfProgramHeader` is local to the implementation file. Specify one of `textSegPtr` and `baseAddress`, and the other as 0, this method will infer the one specified as 0 from the other. Specify `isMainExecutable`, indicating whether the image is the main executable. Return 0 on success and a non‐zero value otherwise. 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. Also note that if `isMainExecutable` is set, `libraryFileName` is ignored and the `argv[0]` the program was called with is used in its place. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/balst/ResolverImpl-0e/resolve.adoc[`resolve`] | Populate information for the specified `*stackTrace`, which contains a sequence of randomly‐accessible stack trace frames. Specify `demanglingPreferredFlag`, to determine whether demangling is to occur. The behavior is undefined unless all the `address` field in `*stackTrace` are valid and other fields are invalid. | 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. It does not provide any otherwise useful functionality. Return a line number near the beginning of the function in the low‐order 14 bits of the result. Other bits of the result are to be considered garbage. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#