\doxysection{Macro Access:\+ DWARF2-\/4 }
\hypertarget{group__macinfo}{}\label{group__macinfo}\index{Macro Access: DWARF2-\/4@{Macro Access: DWARF2-\/4}}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
DW\+\_\+\+API char \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{group__macinfo_ga892e1a33b6fb8ea30391966a880ec1cb}{dwarf\+\_\+find\+\_\+macro\+\_\+value\+\_\+start}} (char \texorpdfstring{$\ast$}{*}dw\+\_\+macro\+\_\+string)
\begin{DoxyCompactList}\small\item\em Return a pointer to the value part of a macro. \end{DoxyCompactList}\item 
DW\+\_\+\+API int \doxymbox{\hyperlink{group__macinfo_ga48ec6bf263dd598270e3b8dd98465a58}{dwarf\+\_\+get\+\_\+macro\+\_\+details}} (\doxymbox{\hyperlink{group__allstructs_gac2ba1e1c1b70a3191506b414195ca807}{Dwarf\+\_\+\+Debug}} dw\+\_\+dbg, \doxymbox{\hyperlink{group__basicdatatypes_ga08c706887ae8c6e09e8f0fb5dd9a539e}{Dwarf\+\_\+\+Off}} dw\+\_\+macro\+\_\+offset, \doxymbox{\hyperlink{group__basicdatatypes_ga5de64bb9627534a24dcbccc327916265}{Dwarf\+\_\+\+Unsigned}} dw\+\_\+maximum\+\_\+count, \doxymbox{\hyperlink{group__basicdatatypes_gac91d9490d58c8d86a4d5b63ca93ba6dd}{Dwarf\+\_\+\+Signed}} \texorpdfstring{$\ast$}{*}dw\+\_\+entry\+\_\+count, \doxymbox{\hyperlink{group__allstructs_ga8e58389088d010d04d6ce5e646b278c3}{Dwarf\+\_\+\+Macro\+\_\+\+Details}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}dw\+\_\+details, \doxymbox{\hyperlink{group__allstructs_ga8d4fac0e48040b6ca91e06ffda09766a}{Dwarf\+\_\+\+Error}} \texorpdfstring{$\ast$}{*}dw\+\_\+error)
\begin{DoxyCompactList}\small\item\em Getting .debug\+\_\+macinfo macro details. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Reading the .debug\+\_\+macinfo section.

The section is rarely used since it takes a lot of disk space. DWARF5 has much more compact macro data (in section .debug\+\_\+macro).

For an example see \begin{DoxySeeAlso}{See also}
\doxylink{group__examplep2}{Reading .\+debug\+\_\+macinfo (\+DWARF2-\/4)} An example reading .debug\+\_\+macinfo 
\end{DoxySeeAlso}


\label{doc-func-members}
\Hypertarget{group__macinfo_doc-func-members}
\doxysubsection{Function Documentation}
\Hypertarget{group__macinfo_ga892e1a33b6fb8ea30391966a880ec1cb}\index{Macro Access: DWARF2-\/4@{Macro Access: DWARF2-\/4}!dwarf\_find\_macro\_value\_start@{dwarf\_find\_macro\_value\_start}}
\index{dwarf\_find\_macro\_value\_start@{dwarf\_find\_macro\_value\_start}!Macro Access: DWARF2-\/4@{Macro Access: DWARF2-\/4}}
\doxysubsubsection{\texorpdfstring{dwarf\_find\_macro\_value\_start()}{dwarf\_find\_macro\_value\_start()}}
{\footnotesize\ttfamily \label{group__macinfo_ga892e1a33b6fb8ea30391966a880ec1cb} 
DW\+\_\+\+API char \texorpdfstring{$\ast$}{*} dwarf\+\_\+find\+\_\+macro\+\_\+value\+\_\+start (\begin{DoxyParamCaption}\item[{char \texorpdfstring{$\ast$}{*}}]{dw\+\_\+macro\+\_\+string}{}\end{DoxyParamCaption})}



Return a pointer to the value part of a macro. 

This function Works for all versions, DWARF2-\/\+DWARF5


\begin{DoxyParams}{Parameters}
{\em dw\+\_\+macro\+\_\+string} & The macro string passed in should be properly formatted with a name, a space, and then the value portion (whether a function-\/like macro or not function-\/like). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
On success it returns a pointer to the value portion of the macro. On failure it returns a pointer to a NUL byte (so a zero-\/length string). 
\end{DoxyReturn}
\Hypertarget{group__macinfo_ga48ec6bf263dd598270e3b8dd98465a58}\index{Macro Access: DWARF2-\/4@{Macro Access: DWARF2-\/4}!dwarf\_get\_macro\_details@{dwarf\_get\_macro\_details}}
\index{dwarf\_get\_macro\_details@{dwarf\_get\_macro\_details}!Macro Access: DWARF2-\/4@{Macro Access: DWARF2-\/4}}
\doxysubsubsection{\texorpdfstring{dwarf\_get\_macro\_details()}{dwarf\_get\_macro\_details()}}
{\footnotesize\ttfamily \label{group__macinfo_ga48ec6bf263dd598270e3b8dd98465a58} 
DW\+\_\+\+API int dwarf\+\_\+get\+\_\+macro\+\_\+details (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{group__allstructs_gac2ba1e1c1b70a3191506b414195ca807}{Dwarf\+\_\+\+Debug}}}]{dw\+\_\+dbg}{, }\item[{\doxymbox{\hyperlink{group__basicdatatypes_ga08c706887ae8c6e09e8f0fb5dd9a539e}{Dwarf\+\_\+\+Off}}}]{dw\+\_\+macro\+\_\+offset}{, }\item[{\doxymbox{\hyperlink{group__basicdatatypes_ga5de64bb9627534a24dcbccc327916265}{Dwarf\+\_\+\+Unsigned}}}]{dw\+\_\+maximum\+\_\+count}{, }\item[{\doxymbox{\hyperlink{group__basicdatatypes_gac91d9490d58c8d86a4d5b63ca93ba6dd}{Dwarf\+\_\+\+Signed}} \texorpdfstring{$\ast$}{*}}]{dw\+\_\+entry\+\_\+count}{, }\item[{\doxymbox{\hyperlink{group__allstructs_ga8e58389088d010d04d6ce5e646b278c3}{Dwarf\+\_\+\+Macro\+\_\+\+Details}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}}]{dw\+\_\+details}{, }\item[{\doxymbox{\hyperlink{group__allstructs_ga8d4fac0e48040b6ca91e06ffda09766a}{Dwarf\+\_\+\+Error}} \texorpdfstring{$\ast$}{*}}]{dw\+\_\+error}{}\end{DoxyParamCaption})}



Getting .debug\+\_\+macinfo macro details. 

\doxylink{group__examplep2}{An example calling this function }

\begin{DoxySeeAlso}{See also}
\doxylink{group__examplep2}{Reading .\+debug\+\_\+macinfo (\+DWARF2-\/4)}
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em dw\+\_\+dbg} & The \doxylink{group__allstructs_gac2ba1e1c1b70a3191506b414195ca807}{Dwarf\+\_\+\+Debug} of interest. \\
\hline
{\em dw\+\_\+macro\+\_\+offset} & The offset in the section you wish to start from. \\
\hline
{\em dw\+\_\+maximum\+\_\+count} & Pass in a count to ensure we will not allocate an excessive amount (guarding against a\\
\hline
{\em dw\+\_\+entry\+\_\+count} & On success returns a count of the macro operations in a CU macro set. \\
\hline
{\em dw\+\_\+details} & On success returns a pointer to an array of struct DW\+\_\+\+Macro\+\_\+\+Details\+\_\+s . \\
\hline
{\em dw\+\_\+error} & The usual error detail return pointer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns DW\+\_\+\+DLV\+\_\+\+OK etc. 
\end{DoxyReturn}
