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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 >&nbsp;</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 >