This commit is contained in:
caheckman 2020-09-09 13:29:26 -04:00
parent 74103976a1
commit 0c65e251aa
11 changed files with 88 additions and 292 deletions

View file

@ -93,7 +93,8 @@ task buildDecompilerHelpHtml(type: Exec) {
echo '** Building html files **' echo '** Building html files **'
xsltproc --output $buildDir/decomp_noscaling.xml --stringparam profile.condition "noscaling" /usr/share/sgml/docbook/xsl-stylesheets/profiling/profile.xsl decompileplugin.xml 2>&1 xsltproc --output $buildDir/decomp_noscaling.xml --stringparam profile.condition "noscaling" /usr/share/sgml/docbook/xsl-stylesheets/profiling/profile.xsl decompileplugin.xml 2>&1
xsltproc --stringparam base.dir ${installHelpPoint}/topics/DecompilePlugin/ --stringparam root.filename Decompiler decompileplugin_html.xsl $buildDir/decomp_noscaling.xml 2>&1 xsltproc --stringparam base.dir ${installHelpPoint}/topics/DecompilePlugin/ --stringparam root.filename Decompiler decompileplugin_html.xsl $buildDir/decomp_noscaling.xml 2>&1
sed -i -e '/Frontpage.css/ { p; s/Frontpage.css/languages.css/; }' ${installHelpPoint}/topics/DecompilePlugin/*.html rm ${installHelpPoint}/topics/DecompilePlugin/Decompiler.html
sed -i -e '/Frontpage.css/ { p; s/Frontpage.css/languages.css/; }' ${installHelpPoint}/topics/DecompilePlugin/*.html 2>&1
echo '** Done. **' echo '** Done. **'
""" """

View file

@ -976,7 +976,7 @@
</itemizedlist> </itemizedlist>
</informalexample> </informalexample>
The scope extends via control-flow to each p-code operation that <emphasis>reads</emphasis> the The scope extends via control-flow to each p-code operation that <emphasis>reads</emphasis> the
specific varnode as an operand. The value of the varnode between the definining p-code operation specific varnode as an operand. The value of the varnode between the defining p-code operation
and the reading operations does not change. The scope of a varnode can be thought of as a set and the reading operations does not change. The scope of a varnode can be thought of as a set
of addresses within the function's body connected by control-flow. The address of the defining of addresses within the function's body connected by control-flow. The address of the defining
p-code operation is referred to as the varnode's <emphasis role="bold">first use point</emphasis> p-code operation is referred to as the varnode's <emphasis role="bold">first use point</emphasis>
@ -1107,7 +1107,7 @@
<sect3 id="ConceptPrototypeKilledByCall"> <sect3 id="ConceptPrototypeKilledByCall">
<title>Killed by Call</title> <title>Killed by Call</title>
<para> <para>
In constrast to <emphasis>unaffected</emphasis> memory locations, a prototype model may specify In contrast to <emphasis>unaffected</emphasis> memory locations, a prototype model may specify
<emphasis role="bold">killed by call</emphasis> locations that are guaranteed <emphasis>not</emphasis> <emphasis role="bold">killed by call</emphasis> locations that are guaranteed <emphasis>not</emphasis>
to be used to hold a value across the function. to be used to hold a value across the function.
</para> </para>
@ -1150,7 +1150,7 @@
A <emphasis role="bold">function body</emphasis> is the set of addresses reached by control-flow A <emphasis role="bold">function body</emphasis> is the set of addresses reached by control-flow
analysis (and the machine instructions at those addresses). analysis (and the machine instructions at those addresses).
</para> </para>
<sect2 id="ConceptEntryPoint"> <sect2 id="AnnoteEntryPoint">
<title>Entry Point</title> <title>Entry Point</title>
<para> <para>
The <emphasis>entry point</emphasis> address for a function plays a pivotal role for The <emphasis>entry point</emphasis> address for a function plays a pivotal role for
@ -1171,7 +1171,7 @@
(See <link xlink:href="help/topics/FunctionPlugin/Functions.htm#Create_Function">Create Function</link>) (See <link xlink:href="help/topics/FunctionPlugin/Functions.htm#Create_Function">Create Function</link>)
</para> </para>
</sect2> </sect2>
<sect2 id="ConceptFunctionBody"> <sect2 id="AnnoteFormalFunctionBody">
<title>Formal Function Body</title> <title>Formal Function Body</title>
<para> <para>
When a function is created, Ghidra stores its function body as a set of addresses in the When a function is created, Ghidra stores its function body as a set of addresses in the
@ -1181,17 +1181,17 @@
in particular use the formal function body to know which function to decompile in response in particular use the formal function body to know which function to decompile in response
to a navigation event to an arbitrary address. to a navigation event to an arbitrary address.
</para> </para>
<note> <warning>
The decompiler does <emphasis>not</emphasis> use the formal function body when it computes The decompiler does <emphasis>not</emphasis> use the formal function body when it computes
control-flow; it recomputes its own idea of the function body starting from the entry point control-flow; it recomputes its own idea of the function body starting from the entry point
it is handed. If the formal function body was created manually, using a selection for instance, it is handed. If the formal function body was created manually, using a selection for instance,
or in other extreme circumstances, the decompiler's view of the function body may not match or in other extreme circumstances, the decompiler's view of the function body may not match
the formal view. This can lead to confusing behavior, where clicking in a decompiler window the formal view. This can lead to confusing behavior, where clicking in a decompiler window
may unexpectedly navigate the window away from the function. may unexpectedly navigate the window away from the function.
</note> </warning>
</sect2> </sect2>
<sect2 id="ConceptFlowOverride"> <sect2 id="AnnoteFlowOverride">
<title>Flow Overrides</title> <title>Flow Overrides</title>
<para> <para>
Control-flow behavior for machine instructions is generally determined by the underlying Control-flow behavior for machine instructions is generally determined by the underlying
@ -1339,12 +1339,12 @@
types can be configured to display in decompiler output, by changing the types can be configured to display in decompiler output, by changing the
decompiler Display options (See <xref linkend="CommentOptions"/>). decompiler Display options (See <xref linkend="CommentOptions"/>).
</para> </para>
<note> <warning>
Unlike the Listing window, the decompiler does not alter how a comment is Unlike the Listing window, the decompiler does not alter how a comment is
displayed based on its type. displayed based on its type.
All enabled types of comment are displayed in the same way, on All enabled types of comment are displayed in the same way, on
a separate line before the line of code associated with the address. a separate line before the line of code associated with the address.
</note> </warning>
</sect2> </sect2>
<sect2 id="CommentUnreachable"> <sect2 id="CommentUnreachable">
@ -1514,7 +1514,7 @@
</para> </para>
<para> <para>
Local variables, Local variables,
in constrast, do not generally exist across the whole function, but come into scope in contrast, do not generally exist across the whole function, but come into scope
at the instruction that first writes to them, and then exist only up to the last at the instruction that first writes to them, and then exist only up to the last
instruction that reads them. The memory location storing a local variable instruction that reads them. The memory location storing a local variable
at one point of the function may be reused for different variables at other points. at one point of the function may be reused for different variables at other points.
@ -1607,7 +1607,7 @@
<sect4 id="TypeChar"> <sect4 id="TypeChar">
<title>Character</title> <title>Character</title>
<para> <para>
ASCII or unicode encoded character data-types are supported for sizes of 1, 2, and 4. The size affectively ASCII or Unicode encoded character data-types are supported for sizes of 1, 2, and 4. The size effectively
chooses between the UTF8, UTF16, and UTF32 character encodings respectively. The standard chooses between the UTF8, UTF16, and UTF32 character encodings respectively. The standard
C data-type names <emphasis role="bold">char</emphasis> and <emphasis role="bold">wchar_t</emphasis> are C data-type names <emphasis role="bold">char</emphasis> and <emphasis role="bold">wchar_t</emphasis> are
mapped to one of these sizes based on the mapped to one of these sizes based on the
@ -1637,7 +1637,7 @@
</para> </para>
<para> <para>
Strings should be fully rendered in decompiler output, Strings should be fully rendered in decompiler output,
with non-printable characters escaped using either traditional sequences like '\r', '\n' or using unicode with non-printable characters escaped using either traditional sequences like '\r', '\n' or using Unicode
escape sequences like '\xFF'. escape sequences like '\xFF'.
</para> </para>
</sect4> </sect4>
@ -1689,7 +1689,7 @@
single value in the enumeration definition, the decompiler attempts to build a matching single value in the enumeration definition, the decompiler attempts to build a matching
value by <emphasis>or</emphasis>-ing together multiple labels. value by <emphasis>or</emphasis>-ing together multiple labels.
The decompiler can be made to break out constants representing packed <emphasis>flags</emphasis>, The decompiler can be made to break out constants representing packed <emphasis>flags</emphasis>,
for instance, by labeling individal bit values within an enumeration. for instance, by labeling individual bit values within an enumeration.
</para> </para>
</sect4> </sect4>
<sect4 id="TypeFunction"> <sect4 id="TypeFunction">
@ -1760,12 +1760,12 @@
but the variable representing the storage location being annotated is guaranteed to have but the variable representing the storage location being annotated is guaranteed to have
the given name and that data-type; it will not be overridden. the given name and that data-type; it will not be overridden.
</para> </para>
<note> <warning>
Users should be aware that variable annotations are forcing on the decompiler and may directly Users should be aware that variable annotations are forcing on the decompiler and may directly
override aspects of its analysis. Because of this, variable annotations are the most powerful way override aspects of its analysis. Because of this, variable annotations are the most powerful way
for the user to affect decompiler output, but setting an incomplete (or incorrect) data-type as for the user to affect decompiler output, but setting an incomplete (or incorrect) data-type as
part of an annotation may produce poorer decompiler output. part of an annotation may produce poorer decompiler output.
</note> </warning>
<para> <para>
The major exception to forcing annotations is if the data-type in the annotation is <emphasis>undefined</emphasis>. The major exception to forcing annotations is if the data-type in the annotation is <emphasis>undefined</emphasis>.
Ghidra reserves the following names to represent formally undefined data-types: Ghidra reserves the following names to represent formally undefined data-types:
@ -1992,7 +1992,7 @@
<term><emphasis role="bold">Variable Arguments</emphasis></term> <term><emphasis role="bold">Variable Arguments</emphasis></term>
<listitem> <listitem>
<para> <para>
Functions have a boolean property called <emphasis role="bold">variable argments</emphasis>, which can be turned on Functions have a boolean property called <emphasis role="bold">variable arguments</emphasis>, which can be turned on
if the function is capable of being passed a variable number of inputs. This property informs the decompiler that if the function is capable of being passed a variable number of inputs. This property informs the decompiler that
the function may take additional parameters beyond any with an explicit variable annotation. the function may take additional parameters beyond any with an explicit variable annotation.
This affects decompilation of any function which calls the <emphasis>variable arguments</emphasis> function, allowing This affects decompilation of any function which calls the <emphasis>variable arguments</emphasis> function, allowing
@ -2056,11 +2056,11 @@
See the complete discussion in <xref linkend="AnnoteForcing"/>. See the complete discussion in <xref linkend="AnnoteForcing"/>.
But keep in mind: But keep in mind:
</para> </para>
<note> <warning>
The input parameters and return value are all forced on the decompiler as a unit based on the The input parameters and return value are all forced on the decompiler as a unit based on the
<emphasis>Signature Source-Type</emphasis>. They are all forced if the Source-Type is set to anything <emphasis>Signature Source-Type</emphasis>. They are all forced if the Source-Type is set to anything
other than <emphasis>DEFAULT</emphasis>; otherwise none of them are forced. other than <emphasis>DEFAULT</emphasis>; otherwise none of them are forced.
</note> </warning>
<para> <para>
If the function prototype's annotations are not forced, the decompiler will attempt to discover the parameters If the function prototype's annotations are not forced, the decompiler will attempt to discover the parameters
and return value using the calling convention. The prototype model underlying the calling convention and return value using the calling convention. The prototype model underlying the calling convention
@ -2507,7 +2507,7 @@
<listitem> <listitem>
<para> <para>
Assign the color to any characters emitted by the decompiler that do not fall into one of token types Assign the color to any characters emitted by the decompiler that do not fall into one of token types
listed above. This includes delimiter characters like commas and parantheses as well as various <emphasis>operator</emphasis> listed above. This includes delimiter characters like commas and parentheses as well as various <emphasis>operator</emphasis>
characters. characters.
</para> </para>
</listitem> </listitem>
@ -2644,7 +2644,7 @@
<listitem> <listitem>
<para> <para>
Toggle whether decompiler generated <emphasis>WARNING</emphasis> comments are displayed as part Toggle whether decompiler generated <emphasis>WARNING</emphasis> comments are displayed as part
of the output. The decompiler generates these comments, independent of those layed down by users, to of the output. The decompiler generates these comments, independent of those laid down by users, to
indicate unusual conditions or possible errors (See <xref linkend="CommentWarnings"/>). indicate unusual conditions or possible errors (See <xref linkend="CommentWarnings"/>).
</para> </para>
</listitem> </listitem>
@ -2866,13 +2866,13 @@
<para> <para>
<emphasis>Comment</emphasis> tokens map to the machine address associated with the comment. <emphasis>Comment</emphasis> tokens map to the machine address associated with the comment.
</para> </para>
<note> <warning>
In general, the map between machine instructions and tokens is not one to one because the decompiler In general, the map between machine instructions and tokens is not one to one because the decompiler
transforms its underlying representation of the function. transforms its underlying representation of the function.
An instruction may no longer have any operator that corresponds to it in the decompiled result. An instruction may no longer have any operator that corresponds to it in the decompiled result.
Tokens may be transformed from the natural operation of the machine instruction they are associated Tokens may be transformed from the natural operation of the machine instruction they are associated
with or may represent the effect of multiple instructions. with or may represent the effect of multiple instructions.
</note> </warning>
</sect2> </sect2>
</section> </section>
@ -2950,13 +2950,13 @@
Triggers a re-decompilation of the current function displayed in the window. Triggers a re-decompilation of the current function displayed in the window.
Any cached results are discarded, and a full decompile is performed. Any cached results are discarded, and a full decompile is performed.
</para> </para>
<note> <tip>
This action is <emphasis role="bold">not</emphasis> necessary for normal reverse This action is <emphasis role="bold">not</emphasis> necessary for normal reverse
engineering tasks. Re-decompilation is <emphasis>automatically</emphasis> triggered for all engineering tasks. Re-decompilation is <emphasis>automatically</emphasis> triggered for all
decompiler windows by any change to the Program, so the most up-to-date decompilation is decompiler windows by any change to the Program, so the most up-to-date decompilation is
always available to the user without this action. This action is a primarily a debugging always available to the user without this action. This action is a primarily a debugging
aid for plug-in developers. aid for plug-in developers.
</note> </tip>
</sect2> </sect2>
<sect2 id="ToolBarCopy"> <sect2 id="ToolBarCopy">
@ -2996,9 +2996,9 @@
Generate a control-flow graph based upon the results in the active Decompiler Window, Generate a control-flow graph based upon the results in the active Decompiler Window,
and render it using the current Graph Service. and render it using the current Graph Service.
</para> </para>
<note> <warning>
If no Graph Service is available then this action will no be present. If no Graph Service is available then this action will no be present.
</note> </warning>
</sect2> </sect2>
</section> </section>
@ -3586,7 +3586,7 @@
A new or child namespace can A new or child namespace can
be specified by prepending the base name with the namespace using the C++ '::' be specified by prepending the base name with the namespace using the C++ '::'
separator characters. Any namespace path entered this way is considered relative separator characters. Any namespace path entered this way is considered relative
to the namespace set in the drop-down meu, so the <emphasis role="bold">Global</emphasis> to the namespace set in the drop-down menu, so the <emphasis role="bold">Global</emphasis>
namespace may need to be selected if the user wants to specify an absolute path. If namespace may need to be selected if the user wants to specify an absolute path. If
any path element of the namespace does not exist, it is created. any path element of the namespace does not exist, it is created.
</para> </para>
@ -3642,7 +3642,7 @@
A new or child namespace can A new or child namespace can
be specified by prepending the base name with the namespace using the C++ '::' be specified by prepending the base name with the namespace using the C++ '::'
separator characters. Any namespace path entered this way is considered relative separator characters. Any namespace path entered this way is considered relative
to the namespace set in the drop-down meu, so the <emphasis role="bold">Global</emphasis> to the namespace set in the drop-down menu, so the <emphasis role="bold">Global</emphasis>
namespace may need to be selected if the user wants to specify an absolute path. If namespace may need to be selected if the user wants to specify an absolute path. If
any path element of the namespace does not exist, it is created. any path element of the namespace does not exist, it is created.
</para> </para>
@ -3741,7 +3741,7 @@
the return value (named <code>&lt;RETURN&gt;</code>) did not exist previously, one is created. the return value (named <code>&lt;RETURN&gt;</code>) did not exist previously, one is created.
</para> </para>
<para> <para>
As input parameter annotations and the return value annotation must be commited as a whole As input parameter annotations and the return value annotation must be committed as a whole
(see the discussion of function prototype's in <xref linkend="AnnoteForcing"/>), if (see the discussion of function prototype's in <xref linkend="AnnoteForcing"/>), if
no prototype existed previously, this action also causes variable annotations for all no prototype existed previously, this action also causes variable annotations for all
input parameters to be created as well. In this situation, the action is equivalent to input parameters to be created as well. In this situation, the action is equivalent to

View file

@ -40,6 +40,8 @@
</xsl:element> </xsl:element>
</xsl:template> </xsl:template>
<xsl:param name="suppress.navigation" select="1"/> <!-- Turn off header/footer navigation links -->
<xsl:param name="use.id.as.filename" select="1"/> <!-- Split up into files based on id attribute --> <xsl:param name="use.id.as.filename" select="1"/> <!-- Split up into files based on id attribute -->
<xsl:param name="html.stylesheet" select="'../../shared/Frontpage.css'"/> <!-- Use our custom cascading style sheet --> <xsl:param name="html.stylesheet" select="'../../shared/Frontpage.css'"/> <!-- Use our custom cascading style sheet -->

View file

@ -68,7 +68,8 @@
text="Program Annotations Affecting the Decompiler" text="Program Annotations Affecting the Decompiler"
target="help/topics/DecompilePlugin/DecompilerAnnotations.html"> target="help/topics/DecompilePlugin/DecompilerAnnotations.html">
<tocdef id="AnnoteFunctionBody" sortgroup="a" text="Machine Instructions" target="help/topics/DecompilePlugin/DecompilerAnnotations.html#AnnoteFunctionBody"/> <tocdef id="AnnoteFunctionBody" sortgroup="a" text="Machine Instructions" target="help/topics/DecompilePlugin/DecompilerAnnotations.html#AnnoteFunctionBody"/>
<tocdef id="AnnoteComments" sortgroup="b" text="Comments" target="help/topics/DecompilePlugin/DecompilerAnnotations.html#AnnoteComments"/> <!-- Space added to text="Comments" attribute below to distinguish it from the CommentsPlugin section of the same name -->
<tocdef id="AnnoteComments" sortgroup="b" text="Comments " target="help/topics/DecompilePlugin/DecompilerAnnotations.html#AnnoteComments"/>
<tocdef id="AnnoteVariables" sortgroup="c" text="Variable Annotations" target="help/topics/DecompilePlugin/DecompilerAnnotations.html#AnnoteVariables"/> <tocdef id="AnnoteVariables" sortgroup="c" text="Variable Annotations" target="help/topics/DecompilePlugin/DecompilerAnnotations.html#AnnoteVariables"/>
<tocdef id="AnnotePrototype" sortgroup="d" text="Function Prototypes" target="help/topics/DecompilePlugin/DecompilerAnnotations.html#AnnotePrototype"/> <tocdef id="AnnotePrototype" sortgroup="d" text="Function Prototypes" target="help/topics/DecompilePlugin/DecompilerAnnotations.html#AnnotePrototype"/>
<tocdef id="AnnoteMutability" sortgroup="e" text="Data Mutability" target="help/topics/DecompilePlugin/DecompilerAnnotations.html#AnnoteMutability"/> <tocdef id="AnnoteMutability" sortgroup="e" text="Data Mutability" target="help/topics/DecompilePlugin/DecompilerAnnotations.html#AnnoteMutability"/>

View file

@ -1,59 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Decompiler</title>
<link rel="stylesheet" type="text/css" href="../../shared/Frontpage.css">
<link rel="stylesheet" type="text/css" href="../../shared/languages.css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="Decompiler.html" title="Decompiler">
<link rel="next" href="DecompilerIntro.html" title="Decompiler">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Decompiler</th></tr>
<tr>
<td width="20%" align="left"> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="DecompilerIntro.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="book">
<div class="titlepage">
<div><div><h1 class="title">
<a name="idm140185515313584"></a>Decompiler</h1></div></div>
<hr>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right"> <a accesskey="n" href="DecompilerIntro.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top"> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right" valign="top"> Decompiler</td>
</tr>
</table>
</div>
</body>
</html>

View file

@ -10,21 +10,7 @@
<link rel="prev" href="DecompilerConcepts.html" title="Decompiler Concepts"> <link rel="prev" href="DecompilerConcepts.html" title="Decompiler Concepts">
<link rel="next" href="DecompilerOptions.html" title="Decompiler Options"> <link rel="next" href="DecompilerOptions.html" title="Decompiler Options">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Program Annotations Affecting the Decompiler</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="DecompilerConcepts.html">Prev</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="DecompilerOptions.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title"> <div class="titlepage"><div><div><h1 class="title">
<a name="DecompilerAnnotations"></a>Program Annotations Affecting the Decompiler</h1></div></div></div> <a name="DecompilerAnnotations"></a>Program Annotations Affecting the Decompiler</h1></div></div></div>
@ -63,7 +49,7 @@
</p> </p>
<div class="sect2"> <div class="sect2">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="ConceptEntryPoint"></a>Entry Point</h3></div></div></div> <a name="AnnoteEntryPoint"></a>Entry Point</h3></div></div></div>
<p> <p>
The <span class="emphasis"><em>entry point</em></span> address for a function plays a pivotal role for The <span class="emphasis"><em>entry point</em></span> address for a function plays a pivotal role for
@ -86,7 +72,7 @@
</div> </div>
<div class="sect2"> <div class="sect2">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="ConceptFunctionBody"></a>Formal Function Body</h3></div></div></div> <a name="AnnoteFormalFunctionBody"></a>Formal Function Body</h3></div></div></div>
<p> <p>
When a function is created, Ghidra stores its function body as a set of addresses in the When a function is created, Ghidra stores its function body as a set of addresses in the
@ -96,9 +82,9 @@
in particular use the formal function body to know which function to decompile in response in particular use the formal function body to know which function to decompile in response
to a navigation event to an arbitrary address. to a navigation event to an arbitrary address.
</p> </p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"> <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning">
<tr> <tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../shared/warning.png"></td>
<th align="left"></th> <th align="left"></th>
</tr> </tr>
<tr><td align="left" valign="top"> <tr><td align="left" valign="top">
@ -114,7 +100,7 @@
<div class="sect2"> <div class="sect2">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="ConceptFlowOverride"></a>Flow Overrides</h3></div></div></div> <a name="AnnoteFlowOverride"></a>Flow Overrides</h3></div></div></div>
<p> <p>
Control-flow behavior for machine instructions is generally determined by the underlying Control-flow behavior for machine instructions is generally determined by the underlying
@ -261,9 +247,9 @@
types can be configured to display in decompiler output, by changing the types can be configured to display in decompiler output, by changing the
decompiler Display options (See <a class="xref" href="DecompilerOptions.html#CommentOptions"><span class="bold"><strong>Display &lt;kind-of&gt; Comments</strong></span></a>). decompiler Display options (See <a class="xref" href="DecompilerOptions.html#CommentOptions"><span class="bold"><strong>Display &lt;kind-of&gt; Comments</strong></span></a>).
</p> </p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"> <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning">
<tr> <tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../shared/warning.png"></td>
<th align="left"></th> <th align="left"></th>
</tr> </tr>
<tr><td align="left" valign="top"> <tr><td align="left" valign="top">
@ -459,7 +445,7 @@
</p> </p>
<p> <p>
Local variables, Local variables,
in constrast, do not generally exist across the whole function, but come into scope in contrast, do not generally exist across the whole function, but come into scope
at the instruction that first writes to them, and then exist only up to the last at the instruction that first writes to them, and then exist only up to the last
instruction that reads them. The memory location storing a local variable instruction that reads them. The memory location storing a local variable
at one point of the function may be reused for different variables at other points. at one point of the function may be reused for different variables at other points.
@ -568,7 +554,7 @@
<a name="TypeChar"></a>Character</h5></div></div></div> <a name="TypeChar"></a>Character</h5></div></div></div>
<p> <p>
ASCII or unicode encoded character data-types are supported for sizes of 1, 2, and 4. The size affectively ASCII or Unicode encoded character data-types are supported for sizes of 1, 2, and 4. The size effectively
chooses between the UTF8, UTF16, and UTF32 character encodings respectively. The standard chooses between the UTF8, UTF16, and UTF32 character encodings respectively. The standard
C data-type names <span class="bold"><strong>char</strong></span> and <span class="bold"><strong>wchar_t</strong></span> are C data-type names <span class="bold"><strong>char</strong></span> and <span class="bold"><strong>wchar_t</strong></span> are
mapped to one of these sizes based on the mapped to one of these sizes based on the
@ -602,7 +588,7 @@
</p> </p>
<p> <p>
Strings should be fully rendered in decompiler output, Strings should be fully rendered in decompiler output,
with non-printable characters escaped using either traditional sequences like '\r', '\n' or using unicode with non-printable characters escaped using either traditional sequences like '\r', '\n' or using Unicode
escape sequences like '\xFF'. escape sequences like '\xFF'.
</p> </p>
</div> </div>
@ -662,7 +648,7 @@
single value in the enumeration definition, the decompiler attempts to build a matching single value in the enumeration definition, the decompiler attempts to build a matching
value by <span class="emphasis"><em>or</em></span>-ing together multiple labels. value by <span class="emphasis"><em>or</em></span>-ing together multiple labels.
The decompiler can be made to break out constants representing packed <span class="emphasis"><em>flags</em></span>, The decompiler can be made to break out constants representing packed <span class="emphasis"><em>flags</em></span>,
for instance, by labeling individal bit values within an enumeration. for instance, by labeling individual bit values within an enumeration.
</p> </p>
</div> </div>
<div class="sect4"> <div class="sect4">
@ -741,9 +727,9 @@
but the variable representing the storage location being annotated is guaranteed to have but the variable representing the storage location being annotated is guaranteed to have
the given name and that data-type; it will not be overridden. the given name and that data-type; it will not be overridden.
</p> </p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"> <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning">
<tr> <tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../shared/warning.png"></td>
<th align="left"></th> <th align="left"></th>
</tr> </tr>
<tr><td align="left" valign="top"> <tr><td align="left" valign="top">
@ -799,7 +785,7 @@
</p> </p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note">
<tr> <tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../shared/note.png"></td>
<th align="left"></th> <th align="left"></th>
</tr> </tr>
<tr><td align="left" valign="top"> <tr><td align="left" valign="top">
@ -998,7 +984,7 @@
<dt><span class="term"><span class="bold"><strong>Variable Arguments</strong></span></span></dt> <dt><span class="term"><span class="bold"><strong>Variable Arguments</strong></span></span></dt>
<dd> <dd>
<p> <p>
Functions have a boolean property called <span class="bold"><strong>variable argments</strong></span>, which can be turned on Functions have a boolean property called <span class="bold"><strong>variable arguments</strong></span>, which can be turned on
if the function is capable of being passed a variable number of inputs. This property informs the decompiler that if the function is capable of being passed a variable number of inputs. This property informs the decompiler that
the function may take additional parameters beyond any with an explicit variable annotation. the function may take additional parameters beyond any with an explicit variable annotation.
This affects decompilation of any function which calls the <span class="emphasis"><em>variable arguments</em></span> function, allowing This affects decompilation of any function which calls the <span class="emphasis"><em>variable arguments</em></span> function, allowing
@ -1058,9 +1044,9 @@
See the complete discussion in <a class="xref" href="DecompilerAnnotations.html#AnnoteForcing" title="Forcing Data-types">&#8220;Forcing Data-types&#8221;</a>. See the complete discussion in <a class="xref" href="DecompilerAnnotations.html#AnnoteForcing" title="Forcing Data-types">&#8220;Forcing Data-types&#8221;</a>.
But keep in mind: But keep in mind:
</p> </p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"> <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning">
<tr> <tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../shared/warning.png"></td>
<th align="left"></th> <th align="left"></th>
</tr> </tr>
<tr><td align="left" valign="top"> <tr><td align="left" valign="top">
@ -1268,23 +1254,5 @@
</p> </p>
</div> </div>
</div> </div></body>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="DecompilerConcepts.html">Prev</a> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right"> <a accesskey="n" href="DecompilerOptions.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Decompiler Concepts </td>
<td width="20%" align="center"><a accesskey="h" href="Decompiler.html">Home</a></td>
<td width="40%" align="right" valign="top"> Decompiler Options</td>
</tr>
</table>
</div>
</body>
</html> </html>

View file

@ -10,21 +10,7 @@
<link rel="prev" href="DecompilerIntro.html" title="Decompiler"> <link rel="prev" href="DecompilerIntro.html" title="Decompiler">
<link rel="next" href="DecompilerAnnotations.html" title="Program Annotations Affecting the Decompiler"> <link rel="next" href="DecompilerAnnotations.html" title="Program Annotations Affecting the Decompiler">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Decompiler Concepts</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="DecompilerIntro.html">Prev</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="DecompilerAnnotations.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title"> <div class="titlepage"><div><div><h1 class="title">
<a name="DecompilerConcepts"></a>Decompiler Concepts</h1></div></div></div> <a name="DecompilerConcepts"></a>Decompiler Concepts</h1></div></div></div>
@ -911,7 +897,7 @@
</div> </div>
<p> <p>
The scope extends via control-flow to each p-code operation that <span class="emphasis"><em>reads</em></span> the The scope extends via control-flow to each p-code operation that <span class="emphasis"><em>reads</em></span> the
specific varnode as an operand. The value of the varnode between the definining p-code operation specific varnode as an operand. The value of the varnode between the defining p-code operation
and the reading operations does not change. The scope of a varnode can be thought of as a set and the reading operations does not change. The scope of a varnode can be thought of as a set
of addresses within the function's body connected by control-flow. The address of the defining of addresses within the function's body connected by control-flow. The address of the defining
p-code operation is referred to as the varnode's <span class="bold"><strong>first use point</strong></span> p-code operation is referred to as the varnode's <span class="bold"><strong>first use point</strong></span>
@ -1054,7 +1040,7 @@
<a name="ConceptPrototypeKilledByCall"></a>Killed by Call</h4></div></div></div> <a name="ConceptPrototypeKilledByCall"></a>Killed by Call</h4></div></div></div>
<p> <p>
In constrast to <span class="emphasis"><em>unaffected</em></span> memory locations, a prototype model may specify In contrast to <span class="emphasis"><em>unaffected</em></span> memory locations, a prototype model may specify
<span class="bold"><strong>killed by call</strong></span> locations that are guaranteed <span class="emphasis"><em>not</em></span> <span class="bold"><strong>killed by call</strong></span> locations that are guaranteed <span class="emphasis"><em>not</em></span>
to be used to hold a value across the function. to be used to hold a value across the function.
</p> </p>
@ -1062,23 +1048,5 @@
</div> </div>
</div> </div>
</div> </div></body>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="DecompilerIntro.html">Prev</a> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right"> <a accesskey="n" href="DecompilerAnnotations.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Decompiler </td>
<td width="20%" align="center"><a accesskey="h" href="Decompiler.html">Home</a></td>
<td width="40%" align="right" valign="top"> Program Annotations Affecting the Decompiler</td>
</tr>
</table>
</div>
</body>
</html> </html>

View file

@ -10,21 +10,7 @@
<link rel="prev" href="Decompiler.html" title="Decompiler"> <link rel="prev" href="Decompiler.html" title="Decompiler">
<link rel="next" href="DecompilerConcepts.html" title="Decompiler Concepts"> <link rel="next" href="DecompilerConcepts.html" title="Decompiler Concepts">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Decompiler</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="Decompiler.html">Prev</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="DecompilerConcepts.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title"> <div class="titlepage"><div><div><h1 class="title">
<a name="DecompilerIntro"></a>Decompiler</h1></div></div></div> <a name="DecompilerIntro"></a>Decompiler</h1></div></div></div>
@ -164,23 +150,5 @@
</p> </p>
</div> </div>
</div> </div>
</div> </div></body>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="Decompiler.html">Prev</a> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right"> <a accesskey="n" href="DecompilerConcepts.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Decompiler </td>
<td width="20%" align="center"><a accesskey="h" href="Decompiler.html">Home</a></td>
<td width="40%" align="right" valign="top"> Decompiler Concepts</td>
</tr>
</table>
</div>
</body>
</html> </html>

View file

@ -10,21 +10,7 @@
<link rel="prev" href="DecompilerAnnotations.html" title="Program Annotations Affecting the Decompiler"> <link rel="prev" href="DecompilerAnnotations.html" title="Program Annotations Affecting the Decompiler">
<link rel="next" href="DecompilerWindow.html" title="Decompiler Window"> <link rel="next" href="DecompilerWindow.html" title="Decompiler Window">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Decompiler Options</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="DecompilerAnnotations.html">Prev</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="DecompilerWindow.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title"> <div class="titlepage"><div><div><h1 class="title">
<a name="DecompilerOptions"></a>Decompiler Options</h1></div></div></div> <a name="DecompilerOptions"></a>Decompiler Options</h1></div></div></div>
@ -299,7 +285,7 @@
<dd> <dd>
<p> <p>
Assign the color to any characters emitted by the decompiler that do not fall into one of token types Assign the color to any characters emitted by the decompiler that do not fall into one of token types
listed above. This includes delimiter characters like commas and parantheses as well as various <span class="emphasis"><em>operator</em></span> listed above. This includes delimiter characters like commas and parentheses as well as various <span class="emphasis"><em>operator</em></span>
characters. characters.
</p> </p>
</dd> </dd>
@ -422,7 +408,7 @@
<dd> <dd>
<p> <p>
Toggle whether decompiler generated <span class="emphasis"><em>WARNING</em></span> comments are displayed as part Toggle whether decompiler generated <span class="emphasis"><em>WARNING</em></span> comments are displayed as part
of the output. The decompiler generates these comments, independent of those layed down by users, to of the output. The decompiler generates these comments, independent of those laid down by users, to
indicate unusual conditions or possible errors (See <a class="xref" href="DecompilerAnnotations.html#CommentWarnings" title="Warning Comments">&#8220;Warning Comments&#8221;</a>). indicate unusual conditions or possible errors (See <a class="xref" href="DecompilerAnnotations.html#CommentWarnings" title="Warning Comments">&#8220;Warning Comments&#8221;</a>).
</p> </p>
</dd> </dd>
@ -530,23 +516,5 @@
</p> </p>
</div> </div>
</div> </div></body>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="DecompilerAnnotations.html">Prev</a> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right"> <a accesskey="n" href="DecompilerWindow.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Program Annotations Affecting the Decompiler </td>
<td width="20%" align="center"><a accesskey="h" href="Decompiler.html">Home</a></td>
<td width="40%" align="right" valign="top"> Decompiler Window</td>
</tr>
</table>
</div>
</body>
</html> </html>

View file

@ -9,20 +9,7 @@
<link rel="up" href="Decompiler.html" title="Decompiler"> <link rel="up" href="Decompiler.html" title="Decompiler">
<link rel="prev" href="DecompilerOptions.html" title="Decompiler Options"> <link rel="prev" href="DecompilerOptions.html" title="Decompiler Options">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Decompiler Window</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="DecompilerOptions.html">Prev</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> </td>
</tr>
</table>
<hr>
</div>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title"> <div class="titlepage"><div><div><h1 class="title">
<a name="DecompilerWindow"></a>Decompiler Window</h1></div></div></div> <a name="DecompilerWindow"></a>Decompiler Window</h1></div></div></div>
@ -100,7 +87,7 @@
<p> <p>
Initially pushing <span class="guiicon"><img src="images/decompileFunction.gif"></span> or selecting Initially pushing <span class="guiicon"><img src="images/decompileFunction.gif"></span> or selecting
<span class="bold"><strong>Decompile</strong></span> from <span class="bold"><strong>Window</strong></span> menu in the tool <span class="bold"><strong>Decompile</strong></span> from the <span class="bold"><strong>Window</strong></span> menu in the tool
brings up the <span class="emphasis"><em>main</em></span> window. The main window always displays the function brings up the <span class="emphasis"><em>main</em></span> window. The main window always displays the function
at the <span class="emphasis"><em>current address</em></span> within the Code Browser and follows as the user navigates at the <span class="emphasis"><em>current address</em></span> within the Code Browser and follows as the user navigates
within the Program. Any mouse click, menu option, or other action causing the cursor to move to a new within the Program. Any mouse click, menu option, or other action causing the cursor to move to a new
@ -137,9 +124,9 @@
<p> <p>
<span class="emphasis"><em>Comment</em></span> tokens map to the machine address associated with the comment. <span class="emphasis"><em>Comment</em></span> tokens map to the machine address associated with the comment.
</p> </p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"> <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning">
<tr> <tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../shared/warning.png"></td>
<th align="left"></th> <th align="left"></th>
</tr> </tr>
<tr><td align="left" valign="top"> <tr><td align="left" valign="top">
@ -242,9 +229,9 @@
Triggers a re-decompilation of the current function displayed in the window. Triggers a re-decompilation of the current function displayed in the window.
Any cached results are discarded, and a full decompile is performed. Any cached results are discarded, and a full decompile is performed.
</p> </p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"> <div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip">
<tr> <tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../shared/tip.png"></td>
<th align="left"></th> <th align="left"></th>
</tr> </tr>
<tr><td align="left" valign="top"> <tr><td align="left" valign="top">
@ -300,9 +287,9 @@
Generate a control-flow graph based upon the results in the active Decompiler Window, Generate a control-flow graph based upon the results in the active Decompiler Window,
and render it using the current Graph Service. and render it using the current Graph Service.
</p> </p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"> <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning">
<tr> <tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../shared/warning.png"></td>
<th align="left"></th> <th align="left"></th>
</tr> </tr>
<tr><td align="left" valign="top"> <tr><td align="left" valign="top">
@ -684,13 +671,22 @@
<div class="informalexample"> <div class="informalexample">
<div class="variablelist"><dl class="variablelist"> <div class="variablelist"><dl class="variablelist">
<dt><span class="term"><span class="bold"><strong>Def-Use</strong></span></span></dt> <dt><span class="term"><span class="bold"><strong>Def-Use</strong></span></span></dt>
<dd><p> <dd>
<p>
Highlight the single token where the selected variable was last written (def), Highlight the single token where the selected variable was last written (def),
and highlight all the tokens where that single value is read (use). The written token, and highlight all the tokens where that single value is read (use). The written token,
generally where the variable is on the left-hand side of an assignment expression, generally where the variable is on the left-hand side of an assignment expression,
is highlighted in a different color. If the variable is written on multiple merging is highlighted in a different color. If the variable is written on multiple merging
control-flow paths, no written token is highlighted. control-flow paths, no written token is highlighted.
</p></dd> </p>
<p>
In the following example, the token representing the first write to the
variable <span class="emphasis"><em>a</em></span> is selected when Def-Use is chosen.
</p>
<div class="mediaobject" align="center"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="100%"><tr><td align="center"><img src="images/Defuse.png" align="middle" width="346" height="257"></td></tr></table></div>
<p>
</p>
</dd>
<dt><span class="term"><span class="bold"><strong>Forward Slice</strong></span></span></dt> <dt><span class="term"><span class="bold"><strong>Forward Slice</strong></span></span></dt>
<dd> <dd>
<p> <p>
@ -898,7 +894,7 @@
A new or child namespace can A new or child namespace can
be specified by prepending the base name with the namespace using the C++ '::' be specified by prepending the base name with the namespace using the C++ '::'
separator characters. Any namespace path entered this way is considered relative separator characters. Any namespace path entered this way is considered relative
to the namespace set in the drop-down meu, so the <span class="bold"><strong>Global</strong></span> to the namespace set in the drop-down menu, so the <span class="bold"><strong>Global</strong></span>
namespace may need to be selected if the user wants to specify an absolute path. If namespace may need to be selected if the user wants to specify an absolute path. If
any path element of the namespace does not exist, it is created. any path element of the namespace does not exist, it is created.
</p> </p>
@ -958,7 +954,7 @@
A new or child namespace can A new or child namespace can
be specified by prepending the base name with the namespace using the C++ '::' be specified by prepending the base name with the namespace using the C++ '::'
separator characters. Any namespace path entered this way is considered relative separator characters. Any namespace path entered this way is considered relative
to the namespace set in the drop-down meu, so the <span class="bold"><strong>Global</strong></span> to the namespace set in the drop-down menu, so the <span class="bold"><strong>Global</strong></span>
namespace may need to be selected if the user wants to specify an absolute path. If namespace may need to be selected if the user wants to specify an absolute path. If
any path element of the namespace does not exist, it is created. any path element of the namespace does not exist, it is created.
</p> </p>
@ -1065,7 +1061,7 @@
the return value (named <code class="code">&lt;RETURN&gt;</code>) did not exist previously, one is created. the return value (named <code class="code">&lt;RETURN&gt;</code>) did not exist previously, one is created.
</p> </p>
<p> <p>
As input parameter annotations and the return value annotation must be commited as a whole As input parameter annotations and the return value annotation must be committed as a whole
(see the discussion of function prototype's in <a class="xref" href="DecompilerAnnotations.html#AnnoteForcing" title="Forcing Data-types">&#8220;Forcing Data-types&#8221;</a>), if (see the discussion of function prototype's in <a class="xref" href="DecompilerAnnotations.html#AnnoteForcing" title="Forcing Data-types">&#8220;Forcing Data-types&#8221;</a>), if
no prototype existed previously, this action also causes variable annotations for all no prototype existed previously, this action also causes variable annotations for all
input parameters to be created as well. In this situation, the action is equivalent to input parameters to be created as well. In this situation, the action is equivalent to
@ -1133,22 +1129,5 @@
</div> </div>
</div> </div></body>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="DecompilerOptions.html">Prev</a> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right"> </td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Decompiler Options </td>
<td width="20%" align="center"><a accesskey="h" href="Decompiler.html">Home</a></td>
<td width="40%" align="right" valign="top"> </td>
</tr>
</table>
</div>
</body>
</html> </html>

View file

@ -66,7 +66,7 @@
"help/topics/CodeBrowserPlugin/CodeBrowser.htm">Listing</A> cursor on the symbol you want "help/topics/CodeBrowserPlugin/CodeBrowser.htm">Listing</A> cursor on the symbol you want
to lookup and choose from the menu <B>Navigation &rarr; Go To Symbol Source</B>.</P> to lookup and choose from the menu <B>Navigation &rarr; Go To Symbol Source</B>.</P>
<P>You can also execute this action when your cursor is in the <A href= <P>You can also execute this action when your cursor is in the <A href=
"help/topics/DecompilePlugin/Decompiler.htm">Decompiler</A>.<P> "help/topics/DecompilePlugin/DecompilerIntro.html">Decompiler</A>.<P>
</BLOCKQUOTE> </BLOCKQUOTE>
<H2>Troubleshooting</H2> <H2>Troubleshooting</H2>