Mercurial > hg > index.cgi
annotate docs/manual/c21.html @ 577:e49d24f4a9a5
Correct bug in the object file output code leading to stack corruption
It turns out leaving a pointer to a stack allocated temporary in a
persistent data structure is not conducive to correct program operation.
Undo the export check setup in the object file output sequence so a
pointer to stack allocated memory is not left hanging when the function
returns. This seems to correct at least one mysterious crash bug, and
possibly others.
Thanks to Boisy Pitre for reporting the crash bug that led to this
discovery, as well as a previous crash bug that likely has the same
root cause.
Additional thanks to Ciaran Anscomb whose debugger wielding wizardry
revealed the exact location of this particular bit of unbrilliance.
author | William Astle <lost@l-w.ca> |
---|---|
date | Sat, 03 Aug 2024 14:30:06 -0600 |
parents | b30091890d62 |
children |
rev | line source |
---|---|
324
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
2 <HTML |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
3 ><HEAD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
4 ><TITLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
5 >Output Formats</TITLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
6 ><META |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
7 NAME="GENERATOR" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
9 REL="HOME" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
10 TITLE="LW Tool Chain" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
11 HREF="index.html"><LINK |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
12 REL="PREVIOUS" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
13 TITLE="Introduction" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
14 HREF="c13.html"><LINK |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
15 REL="NEXT" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
16 TITLE="DECB Binaries" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
17 HREF="x27.html"></HEAD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
18 ><BODY |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
19 CLASS="CHAPTER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
20 BGCOLOR="#FFFFFF" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
21 TEXT="#000000" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
22 LINK="#0000FF" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
23 VLINK="#840084" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
24 ALINK="#0000FF" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
25 ><DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
26 CLASS="NAVHEADER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
27 ><TABLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
28 SUMMARY="Header navigation table" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
29 WIDTH="100%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
30 BORDER="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
31 CELLPADDING="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
32 CELLSPACING="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
33 ><TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
34 ><TH |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
35 COLSPAN="3" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
36 ALIGN="center" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
37 >LW Tool Chain</TH |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
38 ></TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
39 ><TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
40 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
41 WIDTH="10%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
42 ALIGN="left" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
43 VALIGN="bottom" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
44 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
45 HREF="c13.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
46 ACCESSKEY="P" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
47 >Prev</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
48 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
49 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
50 WIDTH="80%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
51 ALIGN="center" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
52 VALIGN="bottom" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
53 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
54 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
55 WIDTH="10%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
56 ALIGN="right" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
57 VALIGN="bottom" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
58 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
59 HREF="x27.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
60 ACCESSKEY="N" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
61 >Next</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
62 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
63 ></TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
64 ></TABLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
65 ><HR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
66 ALIGN="LEFT" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
67 WIDTH="100%"></DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
68 ><DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
69 CLASS="CHAPTER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
70 ><H1 |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
71 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
72 NAME="AEN21" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
73 ></A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
74 >Chapter 2. Output Formats</H1 |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
75 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
76 >The LW tool chain supports multiple output formats. Each format has its |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
77 advantages and disadvantages. Each format is described below.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
78 ><DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
79 CLASS="SECTION" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
80 ><H1 |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
81 CLASS="SECTION" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
82 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
83 NAME="AEN24" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
84 >2.1. Raw Binaries</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
85 ></H1 |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
86 ><P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
87 >A raw binary is simply a string of bytes. There are no headers or other |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
88 niceties. Both LWLINK and LWASM support generating raw binaries. ORG directives |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
89 in the source code only serve to set the addresses that will be used for |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
90 symbols but otherwise have no direct impact on the resulting binary.</P |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
91 ></DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
92 ></DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
93 ><DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
94 CLASS="NAVFOOTER" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
95 ><HR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
96 ALIGN="LEFT" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
97 WIDTH="100%"><TABLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
98 SUMMARY="Footer navigation table" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
99 WIDTH="100%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
100 BORDER="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
101 CELLPADDING="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
102 CELLSPACING="0" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
103 ><TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
104 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
105 WIDTH="33%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
106 ALIGN="left" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
107 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
108 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
109 HREF="c13.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
110 ACCESSKEY="P" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
111 >Prev</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
112 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
113 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
114 WIDTH="34%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
115 ALIGN="center" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
116 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
117 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
118 HREF="index.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
119 ACCESSKEY="H" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
120 >Home</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
121 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
122 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
123 WIDTH="33%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
124 ALIGN="right" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
125 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
126 ><A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
127 HREF="x27.html" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
128 ACCESSKEY="N" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
129 >Next</A |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
130 ></TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
131 ></TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
132 ><TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
133 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
134 WIDTH="33%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
135 ALIGN="left" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
136 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
137 >Introduction</TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
138 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
139 WIDTH="34%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
140 ALIGN="center" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
141 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
142 > </TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
143 ><TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
144 WIDTH="33%" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
145 ALIGN="right" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
146 VALIGN="top" |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
147 >DECB Binaries</TD |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
148 ></TR |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
149 ></TABLE |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
150 ></DIV |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
151 ></BODY |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
152 ></HTML |
b30091890d62
Add documentation of the new hex output formats.
William Astle <lost@l-w.ca>
parents:
diff
changeset
|
153 > |