| 1710 |
mkiran |
1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
2 |
<!-- saved from url=(0057)http://www.objectcentral.com/vide/help/videdoc/bcc32.html -->
|
|
|
3 |
<HTML><HEAD><TITLE>vApp</TITLE>
|
|
|
4 |
<META http-equiv=Content-Type content="text/html; charset=windows-1252"><LINK
|
|
|
5 |
href="vApp_files/vstyle.css" rel=StyleSheet>
|
|
|
6 |
<META content="MSHTML 6.00.2800.1522" name=GENERATOR></HEAD>
|
|
|
7 |
<BODY>
|
|
|
8 |
<CENTER><IMG height=72 alt="" src="vApp_files/vide.jpeg" width=72> <A
|
|
|
9 |
href="http://www.objectcentral.com/vide/help/videdoc/videdoc.htm">VIDE User Guide</A>
|
|
|
10 |
</CENTER>
|
|
|
11 |
<HR>
|
|
|
12 |
<A name=top></A>
|
|
|
13 |
<CENTER>
|
|
|
14 |
<H1>The Borland C++ Compiler 5.5</H1><BR>15 September 2000 </CENTER>
|
|
|
15 |
<UL>
|
|
|
16 |
<LI><A
|
|
|
17 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#getting">Getting
|
|
|
18 |
and Using the Free Borland C++ Compiler 5.5</A>
|
|
|
19 |
<LI><A
|
|
|
20 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#Setup">Setting
|
|
|
21 |
up BCC 5.5</A>
|
|
|
22 |
<LI><A
|
|
|
23 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#BCC-VIDE">Using
|
|
|
24 |
Borland C++ with VIDE</A>
|
|
|
25 |
<LI>BCC32 Quick Reference
|
|
|
26 |
<UL>
|
|
|
27 |
<LI><A
|
|
|
28 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#BCC32Switches">BCC32.EXE
|
|
|
29 |
Switches</A>
|
|
|
30 |
<LI><A
|
|
|
31 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#ILINK32Switches">ILINK32.EXE
|
|
|
32 |
- Switches</A>
|
|
|
33 |
<LI><A
|
|
|
34 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#BCCLibs">BCC32
|
|
|
35 |
Libraries</A>
|
|
|
36 |
<LI>Turbo Debugger Reference</A>
|
|
|
37 |
<UL>
|
|
|
38 |
<LI><A
|
|
|
39 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#TD32-cmdline">Command
|
|
|
40 |
Line Switches</A>
|
|
|
41 |
<LI><A
|
|
|
42 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#TD32-keys">Keyboard
|
|
|
43 |
Command Shortcuts</A>
|
|
|
44 |
<LI><A
|
|
|
45 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#TD32-help">TD
|
|
|
46 |
Help</A> </LI></UL></LI></UL>
|
|
|
47 |
<LI><A
|
|
|
48 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#OTHER">Other
|
|
|
49 |
sites with help for BCC 5.5</A>
|
|
|
50 |
<LI><A
|
|
|
51 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#HELPME">Help
|
|
|
52 |
Improve VIDE for BCC</A>
|
|
|
53 |
<LI><A
|
|
|
54 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#Disclaimer">Disclaimer</A>
|
|
|
55 |
</LI></UL>
|
|
|
56 |
<P>This document is intended to help you use the free version of the Borland C++
|
|
|
57 |
compiler with VIDE. The Borland compiler is a good compiler, but the free
|
|
|
58 |
version has some deficiencies. VIDE provides a development environment that
|
|
|
59 |
makes using BCC 5.5 much easier. The free version is also a bit thin on its
|
|
|
60 |
documentation. This situation has improved, and this document will help any BCC
|
|
|
61 |
5.5 user (with or without VIDE) use BCC 5.5 better. There is some important
|
|
|
62 |
information about BCC 5.5 here that is very difficult to find elsewhere.
|
|
|
63 |
<P><A name=getting></A>
|
|
|
64 |
<H2>Getting and Using the Free Borland C++ Compiler 5.5 <FONT size=1><A
|
|
|
65 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H2>
|
|
|
66 |
<P>The Borland C++ Compiler 5.5 is available at <A
|
|
|
67 |
href="http://www.borland.com/bcppbuilder/freecompiler/">http://www.borland.com/bcppbuilder/freecompiler/</A>.
|
|
|
68 |
You have to fill out a bunch of web forms, and eventually get to download the
|
|
|
69 |
compiler. The download is about 8 Megabytes long.
|
|
|
70 |
<P>Borland has made some service packs available to update the compiler. The
|
|
|
71 |
latest full download on the Borland site will include the latest patches, but if
|
|
|
72 |
you have a previous version of the compiler, you should apply the service packs.
|
|
|
73 |
|
|
|
74 |
<P>At the same time you download the compiler, you should also down load the
|
|
|
75 |
debugger, Turbo Debugger, TD32. VIDE supports starting TD32 from inside VIDE.
|
|
|
76 |
You must use TD to set breakpoints and view the source, but the interaction is
|
|
|
77 |
as painless as possible.
|
|
|
78 |
<P>Borland has also made extra documentation available. Most of what you need is
|
|
|
79 |
included with the compiler, but documentation on the C and C++ libraries are not
|
|
|
80 |
included with the free compiler. The most helpful files you need are in
|
|
|
81 |
B5STD.ZIP found at <A
|
|
|
82 |
href="http://www.borland.com/techpubs/bcppbuilder/v5/updates/std.html">http://www.borland.com/techpubs/bcppbuilder/v5/updates/std.html</A>.
|
|
|
83 |
That file is 7.5 MB, but is probably worth the download.
|
|
|
84 |
<P>Once you download the compiler, the debugger, and the optional help files,
|
|
|
85 |
you have to install them. The compiler and debugger downloads are
|
|
|
86 |
self-extracting installers. It is probably a good idea to install them in the
|
|
|
87 |
default location: <TT>c:\borland\bcc55</TT>. Once you've installed the compiler,
|
|
|
88 |
you need to read the <TT>README.TXT</TT> file. It tells important details for
|
|
|
89 |
installation. These details are summarized in this document as well.
|
|
|
90 |
<P><A name=Setup></A>
|
|
|
91 |
<H2>Setting up BCC 5.5 <FONT size=1><A
|
|
|
92 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H2>
|
|
|
93 |
<H3>Configuration Files</H3>
|
|
|
94 |
<P>The most important thing you need to do is set up two configuration files on
|
|
|
95 |
the <TT>\bin</TT> directory. The Borland instructions don't make that location
|
|
|
96 |
clear. Assuming you installed the compiler to the default locations, you need to
|
|
|
97 |
create two files. The first, <TT>C:\Borland\BCC55\bin\bcc32.cfg</TT> should
|
|
|
98 |
contain: <BR><PRE>-I"c:\Borland\Bcc55\include"
|
|
|
99 |
-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\psdk"
|
|
|
100 |
</PRE>
|
|
|
101 |
<P>The second, <TT>C:\Borland\BCC55\bin\ilink32.cfg</TT> should contain: <BR><PRE>-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\psdk"
|
|
|
102 |
</PRE>
|
|
|
103 |
<P>The purpose of these two files is to allow the compiler to find the standard
|
|
|
104 |
system include and library files. Note that the Borland README.TXT leaves out
|
|
|
105 |
the <TT>\psdk</TT> entry. If you leave that out, then the compiler won't be able
|
|
|
106 |
to find all the standard Windows API files contained there.
|
|
|
107 |
<P>Also note that you can add other entries to these files to change the default
|
|
|
108 |
behavior of the compiler. For example, you might want to add <TT>-wuse-</TT> to
|
|
|
109 |
<TT>bcc32.cfg</TT> to stop the compiler from issuing warnings about variables
|
|
|
110 |
that are declared but never used. See the next section on specific switches
|
|
|
111 |
recommended for VIDE.
|
|
|
112 |
<P>
|
|
|
113 |
<H3>Environment Path</H3>
|
|
|
114 |
<P>In addition to these two configuration files, you need to add the compiler
|
|
|
115 |
<TT>\bin</TT> directory to the PATH environment variable. On Windows9x, you edit
|
|
|
116 |
the file <TT>C:\autoexec.bat</TT>. Simply add <TT>c:\borland\bcc55\bin</TT> to
|
|
|
117 |
the <TT>PATH</TT> command. On NT, you use the system settings menu off the Start
|
|
|
118 |
menu to change the PATH in the environment. Note that if you are using VIDE, you
|
|
|
119 |
will need to have the VIDE directory on your path, too.
|
|
|
120 |
<P>
|
|
|
121 |
<H3><B><I>IMPORTANT WARNING!</I></B></H3>
|
|
|
122 |
<P>The standard Windows header files included with Borland BCC 5.5 (e.g.,
|
|
|
123 |
<TT>windows.h</TT>) are set up to compile Windows applications for Windows 2000!
|
|
|
124 |
This is NOT documented anywhere in the help files that come with BCC 5.5. There
|
|
|
125 |
are some significant differences in some Win32 API calls for Win2K and earlier
|
|
|
126 |
Win95, Win98, and WinNT 4.0 versions. Code compiled for Win2K (which is the
|
|
|
127 |
default) will not run correctly on older versions of Windows. Code compiled for
|
|
|
128 |
older versions will run on Win2K.
|
|
|
129 |
<P>You should consider adding the following 2 lines to your
|
|
|
130 |
<TT>C:\Borland\BCC55\win32.cfg</TT> file if you want code that works on Windows
|
|
|
131 |
versions prior to Win2K! <PRE>-DWINVER=0x0400
|
|
|
132 |
-D_WIN32_WINNT=0x0400
|
|
|
133 |
</PRE>
|
|
|
134 |
<P>These switches will be added to the compile line by VIDE, but it would be a
|
|
|
135 |
good idea to include them in your bcc32.cfg file as well.
|
|
|
136 |
<P>
|
|
|
137 |
<H3>General Notes</H3>
|
|
|
138 |
<P>Note that many switches can be negated by following it with a '-'. For
|
|
|
139 |
example, '-v-' means no debugging information.
|
|
|
140 |
<P>If you want to make any of these switches the default behavior, you can add
|
|
|
141 |
them to the BCC32.CFG and ILINK32.CFG files in the <TT>/bin</TT> directory of
|
|
|
142 |
the Borland command line tools.
|
|
|
143 |
<P><A name=BCC-VIDE></A>
|
|
|
144 |
<H2>Using Borland C++ with VIDE <FONT size=1><A
|
|
|
145 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H2>
|
|
|
146 |
<P>
|
|
|
147 |
<H3>Using BCC32</H3>
|
|
|
148 |
<P>VIDE hides most of the details of using the command line tools from you.
|
|
|
149 |
However, underneath it all, the command line tools are still there. This section
|
|
|
150 |
explains some of the details of using VIDE with BCC32.
|
|
|
151 |
<H4>Borland Configuration files</H4>
|
|
|
152 |
<P>It is <I>essential</I> that you have the two compiler <TT>.cfg</TT> files set
|
|
|
153 |
up in the <TT>\bin</TT> directory. The following files are suggested:
|
|
|
154 |
<P><B>bcc32.cfg</B>
|
|
|
155 |
<P><PRE>-w
|
|
|
156 |
-I"c:\Borland\Bcc55\include"
|
|
|
157 |
-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\psdk"
|
|
|
158 |
</PRE>
|
|
|
159 |
<P>The '-w' switch turns on warnings. You might want to refine the with some
|
|
|
160 |
'-wxxx-' switches to suppress some of the warnings.
|
|
|
161 |
<P><B>ilink32.cfg</B>
|
|
|
162 |
<P><PRE>-x
|
|
|
163 |
-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\psdk"
|
|
|
164 |
</PRE>
|
|
|
165 |
<P>The '-x' switch turns off the map file. If you want to supress incremental
|
|
|
166 |
linking, you can add the '-Gn' switch.
|
|
|
167 |
<P>
|
|
|
168 |
<P><A href="" name="VIDE Options"></A>
|
|
|
169 |
<H4>VIDE Options</H4>
|
|
|
170 |
<P>To use VIDE with the Borland compiler, you <I>MUST</I> set the path to the
|
|
|
171 |
root of the compiler directory in the <B>Options->VIDE</B> dialog. You should
|
|
|
172 |
set the <TT>Compiler root:</TT> value to the directory of the Borland compiler
|
|
|
173 |
(not the \bin directory). If you installed BCC32 to the default directory, then
|
|
|
174 |
this would be <TT>c:\Borland\bcc55</TT>. Note that if you've installed BCC32 to
|
|
|
175 |
a directory with a space in its name, you need to enclose the path in quotation
|
|
|
176 |
marks here. For example, <TT>"c:\Program Files\Borland\bcc55"</TT>. You should
|
|
|
177 |
also select Borland BCC as the compiler in the Radio Button list.
|
|
|
178 |
<P>
|
|
|
179 |
<H4>Default Project Values</H4>
|
|
|
180 |
<P>Depending on whether you generate GUI or a Console application, the VIDE
|
|
|
181 |
project file sets some default values. These are visible in the
|
|
|
182 |
<B>Project->Edit</B> project editor dialog.
|
|
|
183 |
<P>The default compiler flags look like: <TT>-P -O1 -v-</TT>. The
|
|
|
184 |
<TT>-P</TT> switch means C++ files, <TT>-O1</TT> is optimization for size, and
|
|
|
185 |
<TT>-v-</TT> turns off debugging. Remember that you may have already set other
|
|
|
186 |
switches in the <TT>bcc32.cfg</TT> file in the Borland compiler directory.
|
|
|
187 |
<P>The linker flags line looks like:
|
|
|
188 |
<TT>-v- -Tpe -ap -c -limport32 -l$(BCC32RTLIB)</TT>.
|
|
|
189 |
These switches control the linker, and may change depending if you have a
|
|
|
190 |
Console or GUI app. The last two values are the names of the run time libraries
|
|
|
191 |
needed. <TT>Import32</TT> is always needed, and the other, <TT>BCC32RTLIB</TT>
|
|
|
192 |
is the It can be a static or dynamic version, and <TT>cw32.lib</TT> static
|
|
|
193 |
version is used by default.
|
|
|
194 |
<P>The linker also must include a startup object code file, which varies for GUI
|
|
|
195 |
("c0w32.obj") and console apps ("c0x32.obj"). There are also wide-char versions
|
|
|
196 |
of these two startup libraries. You can override the defaults by changing the
|
|
|
197 |
value of <TT>BCC32STARTUP</TT> in the Advanced tab of project editor.
|
|
|
198 |
<P>
|
|
|
199 |
<P>
|
|
|
200 |
<H4>Runtime Libraries</H4>
|
|
|
201 |
<P>BCC32 comes with 4 runtime libraries. There are single threaded and
|
|
|
202 |
multithreaded versions, and a static and dynamic version of each. The default
|
|
|
203 |
library is "cw32.lib", the single-threaded static library. You can use the
|
|
|
204 |
dynamic version of this library by changing the value of <TT>BCC32RTLIB</TT> in
|
|
|
205 |
the advanced tab of the project editor to "cw32i" (no .lib, which is added
|
|
|
206 |
automatically by VIDE). You also must either add the <TT>-D_RTLDLL</TT> define
|
|
|
207 |
from the defines tab, or add the <TT>-tWR</TT> switch (<TT>-tWCR</TT> for
|
|
|
208 |
console apps) to the compiler flags line, and recompile your program. You can do
|
|
|
209 |
switch to the static multi-threaded library ("cw32mt") or dynamic library
|
|
|
210 |
("cw32mti") in a similar fashion.
|
|
|
211 |
<P>
|
|
|
212 |
<H4>DEF files</H4>
|
|
|
213 |
<P>You may have some projects that require a <TT>.DEF</TT> file. If you need
|
|
|
214 |
one, got to the Advanced tab in the project editor You will find the symbol
|
|
|
215 |
<TT>BCC32DEF</TT> predefined with no value. Simply edit this entry to add the
|
|
|
216 |
name of your <TT>.DEF</TT> file after the =. The file will then be used by
|
|
|
217 |
ILINK32. See Borland's documentation for more information about using
|
|
|
218 |
<TT>.DEF</TT> files.
|
|
|
219 |
<P>
|
|
|
220 |
<H4>Specifying Libraries</H4>
|
|
|
221 |
<P>VIDE allows you to specify libraries to link with on the <B>Linker flags</B>
|
|
|
222 |
line of the Names tab of the project editor. This line is used for linker flags,
|
|
|
223 |
<I>and</I> the names of libraries you need to add. You can see the default
|
|
|
224 |
<TT>-limport32 -l$(BCC32RTLIB)</TT> when you create a new project. You can add
|
|
|
225 |
your own library names to this line, preferably <I>before</I> the
|
|
|
226 |
<TT>-limport32</TT> entry. This <TT>-l</TT> syntax is not part of the Borland
|
|
|
227 |
command line options, but is converted by VIDE to the form appropriate in the
|
|
|
228 |
generated Makefile.
|
|
|
229 |
<P>
|
|
|
230 |
<H3>Using Turbo Debugger with VIDE</H3>
|
|
|
231 |
<P>Since Turbo Debugger 32 (TD32) is a stand alone debugger, the integration
|
|
|
232 |
with VIDE is somewhat limited. The main thing you can do is automatically launch
|
|
|
233 |
TD32 with the debug button on the VIDE tool bar.
|
|
|
234 |
<P>If you are building a V application, you will see the TD CPU window when it
|
|
|
235 |
starts. This is because <TT>WinMain</TT> is in the V startup code, and not your
|
|
|
236 |
application code. To view source, you must view a module. Use the TD menu
|
|
|
237 |
commands <B>View-<Module</B> (or <B>F3</B>) to open the module (source file)
|
|
|
238 |
with the code you want to debug. Non-V apps should start with the file with
|
|
|
239 |
<TT>main</TT> or <TT>WinMain</TT> already shown.
|
|
|
240 |
<P>Once you are running TD32, you use it to view the source code lines, set
|
|
|
241 |
breakpoints, inspect variables, and all the usual debugging activities. When you
|
|
|
242 |
find a bug, you then edit the source file with VIDE and recompile. Before you
|
|
|
243 |
can recompile, you must quit TD32 (<B>Alt-X</B>). If you don't, you will get an
|
|
|
244 |
error message from the linker.
|
|
|
245 |
<P>When you then restart TD32, you should then see the message "Restart info is
|
|
|
246 |
old, use anyhow?" If you answer "No", then all your old break points will be
|
|
|
247 |
lost. If you answer yes, the breakpoints will still be there, and they get
|
|
|
248 |
adjusted to the correct new line numbers if you've edited a file with
|
|
|
249 |
breakpoints. Unfortunately, TD32 doesn't seem to know how to preserve open
|
|
|
250 |
module windows.
|
|
|
251 |
<P>If you are debugging a new or different project, you should answer "No" to
|
|
|
252 |
the "Restart info" question the first time.
|
|
|
253 |
<P>
|
|
|
254 |
<H2>BCC32 Quick Reference</H2><A name=BCC32Switches></A>
|
|
|
255 |
<H3>BCC32.EXE Switches <FONT size=1><A
|
|
|
256 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H3>
|
|
|
257 |
<TABLE width="90%" border=1>
|
|
|
258 |
<TBODY>
|
|
|
259 |
<TR>
|
|
|
260 |
<TD><B>switch</B></TD>
|
|
|
261 |
<TD><B>Switch Description</B></TD></TR>
|
|
|
262 |
<TR>
|
|
|
263 |
<TD><B>+filename</B></TD>
|
|
|
264 |
<TD>Use alternate configuration file named filename</TD></TR>
|
|
|
265 |
<TR>
|
|
|
266 |
<TD><B>@filename</B></TD>
|
|
|
267 |
<TD>Read compiler options from the response file filename</TD></TR>
|
|
|
268 |
<TR>
|
|
|
269 |
<TD><B>-3</B></TD>
|
|
|
270 |
<TD>Generate 80386 protected-mode compatible instructions. (Default for
|
|
|
271 |
32-bit compiler)</TD></TR>
|
|
|
272 |
<TR>
|
|
|
273 |
<TD><B>-4</B></TD>
|
|
|
274 |
<TD>Generate 80386/80486 protected-mode compatible instructions.</TD></TR>
|
|
|
275 |
<TR>
|
|
|
276 |
<TD><B>-5</B></TD>
|
|
|
277 |
<TD>Generate Pentium protected-mode compatible instructions.</TD></TR>
|
|
|
278 |
<TR>
|
|
|
279 |
<TD><B>-6</B></TD>
|
|
|
280 |
<TD>Generate Pentium Pro protected-mode compatible instructions.</TD></TR>
|
|
|
281 |
<TR>
|
|
|
282 |
<TD><B>-a</B></TD>
|
|
|
283 |
<TD>Default (-a4) data alignment; -a- is byte.</TD></TR>
|
|
|
284 |
<TR>
|
|
|
285 |
<TD><B>-an</B></TD>
|
|
|
286 |
<TD>Align to n. 1=byte, 2=word (2 bytes), 4=double word (default), 8=quad
|
|
|
287 |
word (8 bytes), 16=paragraph (16 bytes)</TD></TR>
|
|
|
288 |
<TR>
|
|
|
289 |
<TD><B>-A</B></TD>
|
|
|
290 |
<TD>Use only ANSI keywords. (Extensions like the far and near modifier no
|
|
|
291 |
longer recognized.)</TD></TR>
|
|
|
292 |
<TR>
|
|
|
293 |
<TD><B>-A-</B> (Default)</TD>
|
|
|
294 |
<TD>Enable Borland C++ keyword extensions: near, far, huge, asm, cdecl,
|
|
|
295 |
pascal, interrupt, _export, _ds, _cs, _ss, _es.</TD></TR>
|
|
|
296 |
<TR>
|
|
|
297 |
<TD><B>-AK</B></TD>
|
|
|
298 |
<TD>Use only K&R keywords.</TD></TR>
|
|
|
299 |
<TR>
|
|
|
300 |
<TD><B>-AT</B></TD>
|
|
|
301 |
<TD>Use Borland C++ keywords (Alternately specified by -A-)</TD></TR>
|
|
|
302 |
<TR>
|
|
|
303 |
<TD><B>-AU</B></TD>
|
|
|
304 |
<TD>Use UNIX V keywords. (Extensions like the far and near modifier no
|
|
|
305 |
longer recognized.)</TD></TR>
|
|
|
306 |
<TR>
|
|
|
307 |
<TD><B>-b</B></TD>
|
|
|
308 |
<TD>Make enums always integer-sized. (Default: -b make enums integer
|
|
|
309 |
size)</TD></TR>
|
|
|
310 |
<TR>
|
|
|
311 |
<TD><B>-B</B></TD>
|
|
|
312 |
<TD>Compiles assembly and calls TASM or TASM32. If you don't have TASM in
|
|
|
313 |
your path, checking this option generates an error. Also, old versions of
|
|
|
314 |
TASM might have problems with 32-bit generated assembler code.</TD></TR>
|
|
|
315 |
<TR>
|
|
|
316 |
<TD><B>-c</B></TD>
|
|
|
317 |
<TD>Compile source files, but does not execute a link command.</TD></TR>
|
|
|
318 |
<TR>
|
|
|
319 |
<TD><B>-C</B></TD>
|
|
|
320 |
<TD>Turn nested comments on. (Default: -C- turn nested comments
|
|
|
321 |
off.)</TD></TR>
|
|
|
322 |
<TR>
|
|
|
323 |
<TD><B>-d</B></TD>
|
|
|
324 |
<TD>Merge duplicate strings. (Default)</TD></TR>
|
|
|
325 |
<TR>
|
|
|
326 |
<TD><B>-Didentifier</B></TD>
|
|
|
327 |
<TD>Define identifier to the null string.</TD></TR>
|
|
|
328 |
<TR>
|
|
|
329 |
<TD><B>-Didentifier=string</B></TD>
|
|
|
330 |
<TD>Define identifier to string.</TD></TR>
|
|
|
331 |
<TR>
|
|
|
332 |
<TD><B>-efilename</B></TD>
|
|
|
333 |
<TD>Derives the executable program's name from filename by adding the file
|
|
|
334 |
extension .EXE (the program name is then filename.EXE). filename must
|
|
|
335 |
immediately follow the -e, with no intervening whitespace. Without this
|
|
|
336 |
option, the linker derives the .EXE file's name from the name of the first
|
|
|
337 |
source or object file in the file name list.</TD></TR>
|
|
|
338 |
<TR>
|
|
|
339 |
<TD><B>-Efilename</B></TD>
|
|
|
340 |
<TD>Use filename as the name of the assembler to use. (Default =
|
|
|
341 |
TASM)</TD></TR>
|
|
|
342 |
<TR>
|
|
|
343 |
<TD><B>-f</B></TD>
|
|
|
344 |
<TD>Emulate floating point. (Default)</TD></TR>
|
|
|
345 |
<TR>
|
|
|
346 |
<TD><B>-f-</B></TD>
|
|
|
347 |
<TD>No Floating Point</TD></TR>
|
|
|
348 |
<TR>
|
|
|
349 |
<TD><B>-ff</B></TD>
|
|
|
350 |
<TD>Fast floating point. (Default)</TD></TR>
|
|
|
351 |
<TR>
|
|
|
352 |
<TD><B>-F</B></TD>
|
|
|
353 |
<TD>Uses fast huge pointers.</TD></TR>
|
|
|
354 |
<TR>
|
|
|
355 |
<TD><B>-Ff</B></TD>
|
|
|
356 |
<TD>Create far variables automatically.</TD></TR>
|
|
|
357 |
<TR>
|
|
|
358 |
<TD><B>-Ff=1</B></TD>
|
|
|
359 |
<TD>Array variable 'identifier' is near warning. (Default)</TD></TR>
|
|
|
360 |
<TR>
|
|
|
361 |
<TD><B>-Fm</B></TD>
|
|
|
362 |
<TD>Enables all the other -F options (-Fc, -Ff, and -Fs). Use this to
|
|
|
363 |
quickly port code from other 16-bit compilers.</TD></TR>
|
|
|
364 |
<TR>
|
|
|
365 |
<TD><B>-gb</B></TD>
|
|
|
366 |
<TD>Stop batch compilation after first file with warnings (Default:
|
|
|
367 |
-gb-).</TD></TR>
|
|
|
368 |
<TR>
|
|
|
369 |
<TD><B>-gn</B></TD>
|
|
|
370 |
<TD>Stop compiling after n messages. (Default: 255.)</TD></TR>
|
|
|
371 |
<TR>
|
|
|
372 |
<TD><B>-G</B></TD>
|
|
|
373 |
<TD>Optimize code for speed. (Default: -G- optimize code for size.)</TD></TR>
|
|
|
374 |
<TR>
|
|
|
375 |
<TD><B>-H</B></TD>
|
|
|
376 |
<TD>Generate and use precompiled headers. It might be called
|
|
|
377 |
BC32DEF.CSM.</TD></TR>
|
|
|
378 |
<TR>
|
|
|
379 |
<TD><B>-H-</B>(Default)</TD>
|
|
|
380 |
<TD>Does not generate and use precompiled headers.</TD></TR>
|
|
|
381 |
<TR>
|
|
|
382 |
<TD><B>-Hfilename</B></TD>
|
|
|
383 |
<TD>Sets the name of the file for precompiled headers</TD></TR>
|
|
|
384 |
<TR>
|
|
|
385 |
<TD><B>-H=filename</B></TD>
|
|
|
386 |
<TD>Set the name of the file for precompiled headers to filename.</TD></TR>
|
|
|
387 |
<TR>
|
|
|
388 |
<TD><B>-Hc</B></TD>
|
|
|
389 |
<TD>Cache precompiled headers. Use with -H, -Hxxx, -Hu, or -Hfilename.
|
|
|
390 |
This option is useful when compiling more than one precompiled
|
|
|
391 |
header.</TD></TR>
|
|
|
392 |
<TR>
|
|
|
393 |
<TD><B>-Hu</B></TD>
|
|
|
394 |
<TD>Use but do not generate precompiled headers.</TD></TR>
|
|
|
395 |
<TR>
|
|
|
396 |
<TD><B>-in</B></TD>
|
|
|
397 |
<TD>Make significant identifier length to be n, where n is between 8 and
|
|
|
398 |
250. (Default = 250)</TD></TR>
|
|
|
399 |
<TR>
|
|
|
400 |
<TD><B>-Ipath</B></TD>
|
|
|
401 |
<TD>Set search path for directories for include files to path.</TD></TR>
|
|
|
402 |
<TR>
|
|
|
403 |
<TD><B>-jb</B></TD>
|
|
|
404 |
<TD>Stop batch compilation after first file with errors. (default:
|
|
|
405 |
off)</TD></TR>
|
|
|
406 |
<TR>
|
|
|
407 |
<TD><B>-jn</B></TD>
|
|
|
408 |
<TD>Errors: stop after n messages. (Default = 25)</TD></TR>
|
|
|
409 |
<TR>
|
|
|
410 |
<TD><B>-Ja</B></TD>
|
|
|
411 |
<TD>Expand all template members, including unused members.</TD></TR>
|
|
|
412 |
<TR>
|
|
|
413 |
<TD><B>-Jg</B></TD>
|
|
|
414 |
<TD>Generate definitions for all template instances and merge duplicates.
|
|
|
415 |
(Default)</TD></TR>
|
|
|
416 |
<TR>
|
|
|
417 |
<TD><B>-Jgd</B></TD>
|
|
|
418 |
<TD>Generate public definitions for all template instances; duplicates
|
|
|
419 |
result in redefinition errors.</TD></TR>
|
|
|
420 |
<TR>
|
|
|
421 |
<TD><B>-Jgx</B></TD>
|
|
|
422 |
<TD>Generate external references for all template instances.</TD></TR>
|
|
|
423 |
<TR>
|
|
|
424 |
<TD><B>-k</B></TD>
|
|
|
425 |
<TD>Turn on standard stack frame. (Default)</TD></TR>
|
|
|
426 |
<TR>
|
|
|
427 |
<TD><B>-k-</B></TD>
|
|
|
428 |
<TD>Turn off standard stack frame. Generates smaller code, but it can't be
|
|
|
429 |
easily debugged.</TD></TR>
|
|
|
430 |
<TR>
|
|
|
431 |
<TD><B>-K</B></TD>
|
|
|
432 |
<TD>Default character type unsigned. (Default: -K- default character type
|
|
|
433 |
signed.)</TD></TR>
|
|
|
434 |
<TR>
|
|
|
435 |
<TD><B>-lx</B></TD>
|
|
|
436 |
<TD>Pass option x to the linker. More than one option can appear after the
|
|
|
437 |
-l (which is a lowercase L).</TD></TR>
|
|
|
438 |
<TR>
|
|
|
439 |
<TD><B>-l-x</B></TD>
|
|
|
440 |
<TD>Disable option x for linker.</TD></TR>
|
|
|
441 |
<TR>
|
|
|
442 |
<TD><B>-Lpath</B></TD>
|
|
|
443 |
<TD>Set search path for library files.</TD></TR>
|
|
|
444 |
<TR>
|
|
|
445 |
<TD><B>-M</B></TD>
|
|
|
446 |
<TD>Instruct linker to create a full link map.</TD></TR>
|
|
|
447 |
<TR>
|
|
|
448 |
<TD><B>-npath</B></TD>
|
|
|
449 |
<TD>Set the output directory to path.</TD></TR>
|
|
|
450 |
<TR>
|
|
|
451 |
<TD><B>-O</B></TD>
|
|
|
452 |
<TD>Optimize jumps. (Default: on)</TD></TR>
|
|
|
453 |
<TR>
|
|
|
454 |
<TD><B>-O1</B></TD>
|
|
|
455 |
<TD>Generate smallest possible code.</TD></TR>
|
|
|
456 |
<TR>
|
|
|
457 |
<TD><B>-O2</B></TD>
|
|
|
458 |
<TD>Generate fastest possible code.</TD></TR>
|
|
|
459 |
<TR>
|
|
|
460 |
<TD><B>-Od</B></TD>
|
|
|
461 |
<TD>Disable all optimizations.</TD></TR>
|
|
|
462 |
<TR>
|
|
|
463 |
<TD><B>-Ox</B></TD>
|
|
|
464 |
<TD>There are a bunch of tiny optimizations, but it is probably only
|
|
|
465 |
necessary to used -O1 and -O2, so they are not covered here.</TD></TR>
|
|
|
466 |
<TR>
|
|
|
467 |
<TD><B>-OS</B></TD>
|
|
|
468 |
<TD>Pentium instruction scheduling. (Default: off: -O-S)</TD></TR>
|
|
|
469 |
<TR>
|
|
|
470 |
<TD><B>-p</B></TD>
|
|
|
471 |
<TD>Use Pascal calling convention. (This is a lowercase p.)</TD></TR>
|
|
|
472 |
<TR>
|
|
|
473 |
<TD><B>-pc</B></TD>
|
|
|
474 |
<TD>Use C calling convention. (Default same as -pc or -p-)</TD></TR>
|
|
|
475 |
<TR>
|
|
|
476 |
<TD><B>-pr</B></TD>
|
|
|
477 |
<TD>Use fastcall calling convention for passing parameters in
|
|
|
478 |
registers.</TD></TR>
|
|
|
479 |
<TR>
|
|
|
480 |
<TD><B>-ps</B></TD>
|
|
|
481 |
<TD>Use stdcall calling convention (32-bit compiler only).</TD></TR>
|
|
|
482 |
<TR>
|
|
|
483 |
<TD><B>-P</B></TD>
|
|
|
484 |
<TD>Perform a C++ compile regardless of source file extension. (Default
|
|
|
485 |
when extension is not specified. This is an uppercase P.)</TD></TR>
|
|
|
486 |
<TR>
|
|
|
487 |
<TD><B>-Pext</B></TD>
|
|
|
488 |
<TD>Perform a C++ compile regardless of source file extension and set the
|
|
|
489 |
default extension to ext. This option is available because some
|
|
|
490 |
programmers use .C or another extension as their default extension for C++
|
|
|
491 |
code.</TD></TR>
|
|
|
492 |
<TR>
|
|
|
493 |
<TD><B>-q</B></TD>
|
|
|
494 |
<TD>Quiet - suppress compiler banner.</TD></TR>
|
|
|
495 |
<TR>
|
|
|
496 |
<TD><B>-r</B></TD>
|
|
|
497 |
<TD>Use register variables. (Default)</TD></TR>
|
|
|
498 |
<TR>
|
|
|
499 |
<TD><B>-rd</B></TD>
|
|
|
500 |
<TD>Allow only declared register variables to be kept in registers.</TD></TR>
|
|
|
501 |
<TR>
|
|
|
502 |
<TD><B>-R</B></TD>
|
|
|
503 |
<TD>Include browser information in generated .OBJ files.</TD></TR>
|
|
|
504 |
<TR>
|
|
|
505 |
<TD><B>-RT</B></TD>
|
|
|
506 |
<TD>Enable runtime type information. (Default)</TD></TR>
|
|
|
507 |
<TR>
|
|
|
508 |
<TD><B>-S</B></TD>
|
|
|
509 |
<TD>Generate assembler source compiles the named source files and produces
|
|
|
510 |
assembly language output files (.ASM), but does not assemble. When you use
|
|
|
511 |
this option, Borland C++ includes the C or C++ source lines as comments in
|
|
|
512 |
the produced .ASM file.</TD></TR>
|
|
|
513 |
<TR>
|
|
|
514 |
<TD><B>-tW</B></TD>
|
|
|
515 |
<TD>Make the target a Windows .EXE with all functions exportable.
|
|
|
516 |
(Default)</TD></TR>
|
|
|
517 |
<TR>
|
|
|
518 |
<TD><B>-tWC</B></TD>
|
|
|
519 |
<TD>Make the target a console .EXE.</TD></TR>
|
|
|
520 |
<TR>
|
|
|
521 |
<TD><B>-tWD</B></TD>
|
|
|
522 |
<TD>Make the target a Windows .DLL with all functions exportable.</TD></TR>
|
|
|
523 |
<TR>
|
|
|
524 |
<TD><B>-tWM</B></TD>
|
|
|
525 |
<TD>Make a multithreaded application or DLL.</TD></TR>
|
|
|
526 |
<TR>
|
|
|
527 |
<TD><B>-tWR</B></TD>
|
|
|
528 |
<TD>Target uses the dynamic runtime lib. Can use -D_RTLDLL instead.</TD></TR>
|
|
|
529 |
<TR>
|
|
|
530 |
<TD><B>-tWCR</B></TD>
|
|
|
531 |
<TD>Target uses the dynamic runtime lib for CONSOLE apps.</TD></TR>
|
|
|
532 |
<TR>
|
|
|
533 |
<TD><B>-T-</B></TD>
|
|
|
534 |
<TD>Remove all previous assembler options.</TD></TR>
|
|
|
535 |
<TR>
|
|
|
536 |
<TD><B>-Tstring</B></TD>
|
|
|
537 |
<TD>Pass string as an option to TASM, TASM32, or assembler specified with
|
|
|
538 |
-E.</TD></TR>
|
|
|
539 |
<TR>
|
|
|
540 |
<TD><B>-u</B></TD>
|
|
|
541 |
<TD>Generate underscores for symbols. (Default)</TD></TR>
|
|
|
542 |
<TR>
|
|
|
543 |
<TD><B>-Uname</B></TD>
|
|
|
544 |
<TD>Undefines any previous definitions of the named identifier name.</TD></TR>
|
|
|
545 |
<TR>
|
|
|
546 |
<TD><B>-v</B></TD>
|
|
|
547 |
<TD>Turn on source debugging.</TD></TR>
|
|
|
548 |
<TR>
|
|
|
549 |
<TD><B>-vi</B></TD>
|
|
|
550 |
<TD>Turn on inline expansion (-vi- turns off inline expansion).</TD></TR>
|
|
|
551 |
<TR>
|
|
|
552 |
<TD><B>-V</B></TD>
|
|
|
553 |
<TD>Create smart C++ virtual tables. (Default) This means the .objs are
|
|
|
554 |
compatible only with Borland tools. The V0 and V1 can apparently be used
|
|
|
555 |
with other tools, but why?</TD></TR>
|
|
|
556 |
<TR>
|
|
|
557 |
<TD><B>-V0</B></TD>
|
|
|
558 |
<TD>Create external C++ virtual tables.</TD></TR>
|
|
|
559 |
<TR>
|
|
|
560 |
<TD><B>-V1</B></TD>
|
|
|
561 |
<TD>Create public C++ virtual tables.</TD></TR>
|
|
|
562 |
<TR>
|
|
|
563 |
<TD><B>-Vmd</B></TD>
|
|
|
564 |
<TD>Use the smallest representation for member pointers.</TD></TR>
|
|
|
565 |
<TR>
|
|
|
566 |
<TD><B>-Vmm</B></TD>
|
|
|
567 |
<TD>Member pointers support multiple inheritance.</TD></TR>
|
|
|
568 |
<TR>
|
|
|
569 |
<TD><B>-Vmp</B></TD>
|
|
|
570 |
<TD>Honor the declared precision for all member pointer types.</TD></TR>
|
|
|
571 |
<TR>
|
|
|
572 |
<TD><B>-Vms</B></TD>
|
|
|
573 |
<TD>Member pointers support single inheritance.</TD></TR>
|
|
|
574 |
<TR>
|
|
|
575 |
<TD><B>-Vmv</B></TD>
|
|
|
576 |
<TD>Member pointers have no restrictions (most general representation).
|
|
|
577 |
(Default)</TD></TR>
|
|
|
578 |
<TR>
|
|
|
579 |
<TD><B>-Vx</B></TD>
|
|
|
580 |
<TD>Zero-length empty class member functions.</TD></TR>
|
|
|
581 |
<TR>
|
|
|
582 |
<TD><B>-w</B></TD>
|
|
|
583 |
<TD>Display warnings on.</TD></TR>
|
|
|
584 |
<TR>
|
|
|
585 |
<TD><B>-w!</B></TD>
|
|
|
586 |
<TD>Do not compile to .OBJ if warnings were found. (Note: there is no
|
|
|
587 |
space between the -w and the !.)</TD></TR>
|
|
|
588 |
<TR>
|
|
|
589 |
<TD><B>-wmsg</B></TD>
|
|
|
590 |
<TD>Enable user define #pragma messages.</TD></TR>
|
|
|
591 |
<TR>
|
|
|
592 |
<TD><B>-w-xxx</B></TD>
|
|
|
593 |
<TD>Disable xxx warning message.</TD></TR>
|
|
|
594 |
<TR>
|
|
|
595 |
<TD><B>-wxxx</B></TD>
|
|
|
596 |
<TD>Enable xxx warning message.
|
|
|
597 |
<UL>
|
|
|
598 |
<LI>amb -Ambiguous operators need parentheses.
|
|
|
599 |
<LI>amp -Superfluous & with function.
|
|
|
600 |
<LI>asm - Unknown assembler instruction.
|
|
|
601 |
<LI>aus - 'identifier' is assigned a value that is never used. (Default)
|
|
|
602 |
|
|
|
603 |
<LI>bbf - Bit fields must be signed or unsigned int.
|
|
|
604 |
<LI>bei - Initializing 'identifier' with 'identifier'. (Default)
|
|
|
605 |
<LI>big - Hexadecimal value contains more than three digits. (Default)
|
|
|
606 |
<LI>ccc - Condition is always true OR Condition is always false.
|
|
|
607 |
(Default)
|
|
|
608 |
<LI>cln - Constant is long.
|
|
|
609 |
<LI>cpt - Nonportable pointer comparison. (Default)
|
|
|
610 |
<LI>def - Possible use of 'identifier' before definition.
|
|
|
611 |
<LI>dpu - Declare type 'type' prior to use in prototype (Default)
|
|
|
612 |
<LI>dsz - Array size for 'delete' ignored. (Default)
|
|
|
613 |
<LI>dup - Redefinition of 'macro' is not identical (Default)
|
|
|
614 |
<LI>eas - 'type' assigned to 'enumeration'. (Default)
|
|
|
615 |
<LI>eff - Code has no effect. (Default)
|
|
|
616 |
<LI>ext - 'identifier' is declared as both external and static (Default)
|
|
|
617 |
|
|
|
618 |
<LI>hch - Handler for '<type1>' Hidden by Previous Handler for
|
|
|
619 |
'<type2>'
|
|
|
620 |
<LI>hid - 'function1' hides virtual function 'function2' (Default)
|
|
|
621 |
<LI>ibc - Base class '<base1>' is also a base class of
|
|
|
622 |
'<base2>' (Default)
|
|
|
623 |
<LI>ill - Ill-formed pragma. (Default)
|
|
|
624 |
<LI>inl - Functions containing reserved words are not expanded inline
|
|
|
625 |
(Default)
|
|
|
626 |
<LI>lin - Temporary used to initialize 'identifier'. (Default)
|
|
|
627 |
<LI>lvc - Temporary used for parameter 'parameter' in call to 'function'
|
|
|
628 |
(Default)
|
|
|
629 |
<LI>mpc - Conversion to type fails for members of virtual base class
|
|
|
630 |
base. (Default)
|
|
|
631 |
<LI>mpd - Maximum precision used for member pointer type type. (Default)
|
|
|
632 |
|
|
|
633 |
<LI>msg - User-defined warnings . This option allows user-defined
|
|
|
634 |
messages to appear in the IDE message window.
|
|
|
635 |
<LI>nak - Non-ANSI Keyword Used: '<keyword>' (Note: Use of this
|
|
|
636 |
option is a requirement for ANSI conformance.)
|
|
|
637 |
<LI>ncf - Non-const function 'function' called for const object.
|
|
|
638 |
(Default)
|
|
|
639 |
<LI>nci - The constant member 'identifier' is not initialized. (Default)
|
|
|
640 |
|
|
|
641 |
<LI>nod - No declaration for function 'function'
|
|
|
642 |
<LI>nsf - Declaration of static function 'func(...)' ignored.
|
|
|
643 |
<LI>nst - Use qualified name to access nested type 'type' (Default)
|
|
|
644 |
<LI>ntd - Use '> >' for nested templates instead of '>>'.
|
|
|
645 |
(Default)
|
|
|
646 |
<LI>nvf - Non-volatile function function called for volatile object.
|
|
|
647 |
(Default)
|
|
|
648 |
<LI>obi - Base initialization without a class name is now obsolete
|
|
|
649 |
(Default)
|
|
|
650 |
<LI>obs - Identifier is obsolete. (Default)
|
|
|
651 |
<LI>ofp - Style of function definition is now obsolete. (Default)
|
|
|
652 |
<LI>ovl - Overload is now unnecessary and obsolete. (Default)
|
|
|
653 |
<LI>par - Parameter 'parameter' is never used. (Default)
|
|
|
654 |
<LI>pch - Cannot create precompiled header: header. (Default)
|
|
|
655 |
<LI>pia - Possibly incorrect assignment. (Default)
|
|
|
656 |
<LI>pin - Initialization is only partially bracketed.
|
|
|
657 |
<LI>pre - Overloaded prefix operator 'operator' used as a postfix
|
|
|
658 |
operator.
|
|
|
659 |
<LI>pro - Call to function with no prototype. (Default)
|
|
|
660 |
<LI>rch - Unreachable code. (Default)
|
|
|
661 |
<LI>ret - Both return and return of a value used. (Default)
|
|
|
662 |
<LI>rng - Constant out of range in comparison. (Default)
|
|
|
663 |
<LI>rpt - Nonportable pointer conversion. (Default)
|
|
|
664 |
<LI>rvl - Function should return a value. (Default)
|
|
|
665 |
<LI>sig - Conversion may lose significant digits.
|
|
|
666 |
<LI>stu - Undefined structure 'structure'
|
|
|
667 |
<LI>stv - Structure passed by value.
|
|
|
668 |
<LI>sus - Suspicious pointer conversion. (Default)
|
|
|
669 |
<LI>ucp - Mixing pointers to different 'char' types.
|
|
|
670 |
<LI>use - 'identifier' declared but never used.
|
|
|
671 |
<LI>voi - Void functions may not return a value. (Default)
|
|
|
672 |
<LI>xxx - Enable xxx warning message. (Default)
|
|
|
673 |
<LI>zdi - Division by zero (Default) </LI></UL></TD></TR>
|
|
|
674 |
<TR>
|
|
|
675 |
<TD><B>-W</B></TD>
|
|
|
676 |
<TD>Creates a Windows GUI application. (same as -tW)</TD></TR>
|
|
|
677 |
<TR>
|
|
|
678 |
<TD><B>-WC</B></TD>
|
|
|
679 |
<TD>Creates a 32-bit console mode application. (same as -tWC)</TD></TR>
|
|
|
680 |
<TR>
|
|
|
681 |
<TD><B>-WD</B></TD>
|
|
|
682 |
<TD>Creates a GUI DLL with all functions exportable. (same as -tWD)</TD></TR>
|
|
|
683 |
<TR>
|
|
|
684 |
<TD><B>-WM</B></TD>
|
|
|
685 |
<TD>Make a multithreaded application or DLL. (same as -tWM)</TD></TR>
|
|
|
686 |
<TR>
|
|
|
687 |
<TD><B>-WU</B></TD>
|
|
|
688 |
<TD>Generates Unicode application. Uses -txxxx macros in tchar.h.</TD></TR>
|
|
|
689 |
<TR>
|
|
|
690 |
<TD><B>-x</B></TD>
|
|
|
691 |
<TD>Enable exception handling. (Default)</TD></TR>
|
|
|
692 |
<TR>
|
|
|
693 |
<TD><B>-xd</B></TD>
|
|
|
694 |
<TD>Enable destructor cleanup. (Default)</TD></TR>
|
|
|
695 |
<TR>
|
|
|
696 |
<TD><B>-xf</B></TD>
|
|
|
697 |
<TD>Enable fast exception prologs.</TD></TR>
|
|
|
698 |
<TR>
|
|
|
699 |
<TD><B>-xp</B></TD>
|
|
|
700 |
<TD>Enable exception location information.</TD></TR>
|
|
|
701 |
<TR>
|
|
|
702 |
<TD><B>-xp</B></TD>
|
|
|
703 |
<TD>Enable slow exception epilogues.</TD></TR>
|
|
|
704 |
<TR>
|
|
|
705 |
<TD><B>-X</B></TD>
|
|
|
706 |
<TD>Disable compiler autodependency output. (Default: -X- use compiler
|
|
|
707 |
autodependency output.)</TD></TR>
|
|
|
708 |
<TR>
|
|
|
709 |
<TD><B>-y</B></TD>
|
|
|
710 |
<TD>Line numbers on.</TD></TR>
|
|
|
711 |
<TR>
|
|
|
712 |
<TD><B>-zAname</B></TD>
|
|
|
713 |
<TD>Code class set to name.</TD></TR>
|
|
|
714 |
<TR>
|
|
|
715 |
<TD><B>-zBname</B></TD>
|
|
|
716 |
<TD>BSS class set to name.</TD></TR>
|
|
|
717 |
<TR>
|
|
|
718 |
<TD><B>-zCname</B></TD>
|
|
|
719 |
<TD>Code segment class set to name.</TD></TR>
|
|
|
720 |
<TR>
|
|
|
721 |
<TD><B>-zDname</B></TD>
|
|
|
722 |
<TD>BSS segment set to name.</TD></TR>
|
|
|
723 |
<TR>
|
|
|
724 |
<TD><B>-zGname</B></TD>
|
|
|
725 |
<TD>BSS group set to name.</TD></TR>
|
|
|
726 |
<TR>
|
|
|
727 |
<TD><B>-zPname</B></TD>
|
|
|
728 |
<TD>Code group set to name.</TD></TR>
|
|
|
729 |
<TR>
|
|
|
730 |
<TD><B>-zRname</B></TD>
|
|
|
731 |
<TD>Data segment set to name.</TD></TR>
|
|
|
732 |
<TR>
|
|
|
733 |
<TD><B>-zSname</B></TD>
|
|
|
734 |
<TD>Data group set to name.</TD></TR>
|
|
|
735 |
<TR>
|
|
|
736 |
<TD><B>-zTname</B></TD>
|
|
|
737 |
<TD>Data class set to name.</TD></TR>
|
|
|
738 |
<TR>
|
|
|
739 |
<TD><B>-zX*</B></TD>
|
|
|
740 |
<TD>Use default name for X. For example, -zA assigns the default class
|
|
|
741 |
name CODE to the code segment class.</TD></TR>
|
|
|
742 |
<TR>
|
|
|
743 |
<TD><B>-Z</B></TD>
|
|
|
744 |
<TD>Enable register load suppression optimization.</TD></TR></TBODY></TABLE><A
|
|
|
745 |
name=ILINK32Switches></A>
|
|
|
746 |
<H3>ILINK32.EXE - Switches <FONT size=1><A
|
|
|
747 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H3>
|
|
|
748 |
<P>ILINK32 objfiles, exefile, mapfile, libfiles, deffile, resfiles
|
|
|
749 |
<P>@xxxx indicates use response file xxxx
|
|
|
750 |
<P>
|
|
|
751 |
<TABLE width="90%" border=1>
|
|
|
752 |
<TBODY>
|
|
|
753 |
<TR>
|
|
|
754 |
<TD><B>switch</B></TD>
|
|
|
755 |
<TD><B>Switch Description</B></TD></TR>
|
|
|
756 |
<TR>
|
|
|
757 |
<TD><B>-ax</B></TD>
|
|
|
758 |
<TD>Specify application type (known x's follow)</TD></TR>
|
|
|
759 |
<TR>
|
|
|
760 |
<TD><B>-aa</B></TD>
|
|
|
761 |
<TD>Generate a protected-mode executable that runs using the 32-bit
|
|
|
762 |
Windows API</TD></TR>
|
|
|
763 |
<TR>
|
|
|
764 |
<TD><B>-ap</B></TD>
|
|
|
765 |
<TD>Generate a protected-mode executable file that runs in console
|
|
|
766 |
mode</TD></TR>
|
|
|
767 |
<TR>
|
|
|
768 |
<TD><B>-Ao:nnnn</B></TD>
|
|
|
769 |
<TD>Specify object alignment</TD></TR>
|
|
|
770 |
<TR>
|
|
|
771 |
<TD><B>-b:xxxx</B></TD>
|
|
|
772 |
<TD>Specify image base addr</TD></TR>
|
|
|
773 |
<TR>
|
|
|
774 |
<TD><B>-c</B></TD>
|
|
|
775 |
<TD>Case sensitive linking</TD></TR>
|
|
|
776 |
<TR>
|
|
|
777 |
<TD><B>-C</B></TD>
|
|
|
778 |
<TD>Clear state before linking</TD></TR>
|
|
|
779 |
<TR>
|
|
|
780 |
<TD><B>-Dstring</B></TD>
|
|
|
781 |
<TD>Set image description</TD></TR>
|
|
|
782 |
<TR>
|
|
|
783 |
<TD><B>-d</B></TD>
|
|
|
784 |
<TD>Delay load a .DLL</TD></TR>
|
|
|
785 |
<TR>
|
|
|
786 |
<TD><B>-Enn</B></TD>
|
|
|
787 |
<TD>Max number of errors</TD></TR>
|
|
|
788 |
<TR>
|
|
|
789 |
<TD><B>-Gi</B></TD>
|
|
|
790 |
<TD>Generate import library</TD></TR>
|
|
|
791 |
<TR>
|
|
|
792 |
<TD><B>-Gl</B></TD>
|
|
|
793 |
<TD>Static package</TD></TR>
|
|
|
794 |
<TR>
|
|
|
795 |
<TD><B>-Gn</B></TD>
|
|
|
796 |
<TD>No state files</TD></TR>
|
|
|
797 |
<TR>
|
|
|
798 |
<TD><B>-Gpd</B></TD>
|
|
|
799 |
<TD>Design time only package</TD></TR>
|
|
|
800 |
<TR>
|
|
|
801 |
<TD><B>-Gpr</B></TD>
|
|
|
802 |
<TD>Runtime only package</TD></TR>
|
|
|
803 |
<TR>
|
|
|
804 |
<TD><B>-Gt</B></TD>
|
|
|
805 |
<TD>Fast TLS</TD></TR>
|
|
|
806 |
<TR>
|
|
|
807 |
<TD><B>-Gz</B></TD>
|
|
|
808 |
<TD>Do image checksum</TD></TR>
|
|
|
809 |
<TR>
|
|
|
810 |
<TD><B>-GC</B></TD>
|
|
|
811 |
<TD>Specify image comment string</TD></TR>
|
|
|
812 |
<TR>
|
|
|
813 |
<TD><B>-GD</B></TD>
|
|
|
814 |
<TD>Generate .DRC file</TD></TR>
|
|
|
815 |
<TR>
|
|
|
816 |
<TD><B>-GF</B></TD>
|
|
|
817 |
<TD>Set image flags</TD></TR>
|
|
|
818 |
<TR>
|
|
|
819 |
<TD><B>-GS</B></TD>
|
|
|
820 |
<TD>Set section flags</TD></TR>
|
|
|
821 |
<TR>
|
|
|
822 |
<TD><B>-H:xxxx</B></TD>
|
|
|
823 |
<TD>Specify heap reserve size</TD></TR>
|
|
|
824 |
<TR>
|
|
|
825 |
<TD><B>-Hc:xxxx</B></TD>
|
|
|
826 |
<TD>Specify heap commit size</TD></TR>
|
|
|
827 |
<TR>
|
|
|
828 |
<TD><B>-I</B></TD>
|
|
|
829 |
<TD>Intermediate output dir</TD></TR>
|
|
|
830 |
<TR>
|
|
|
831 |
<TD><B>-j</B></TD>
|
|
|
832 |
<TD>Specify object search paths</TD></TR>
|
|
|
833 |
<TR>
|
|
|
834 |
<TD><B>-L</B></TD>
|
|
|
835 |
<TD>Specify library search paths</TD></TR>
|
|
|
836 |
<TR>
|
|
|
837 |
<TD><B>-m</B></TD>
|
|
|
838 |
<TD>Map file with publics</TD></TR>
|
|
|
839 |
<TR>
|
|
|
840 |
<TD><B>-M</B></TD>
|
|
|
841 |
<TD>Map with mangled names</TD></TR>
|
|
|
842 |
<TR>
|
|
|
843 |
<TD><B>-q</B></TD>
|
|
|
844 |
<TD>Supress banner</TD></TR>
|
|
|
845 |
<TR>
|
|
|
846 |
<TD><B>-r</B></TD>
|
|
|
847 |
<TD>Verbose linking</TD></TR>
|
|
|
848 |
<TR>
|
|
|
849 |
<TD><B>-Rr</B></TD>
|
|
|
850 |
<TD>Replace resources</TD></TR>
|
|
|
851 |
<TR>
|
|
|
852 |
<TD><B>-s</B></TD>
|
|
|
853 |
<TD>Detailed segment map</TD></TR>
|
|
|
854 |
<TR>
|
|
|
855 |
<TD><B>-S:xxxx</B></TD>
|
|
|
856 |
<TD>Specify stack reserve size</TD></TR>
|
|
|
857 |
<TR>
|
|
|
858 |
<TD><B>-Sc:xxxx</B></TD>
|
|
|
859 |
<TD>Specify stack commit size</TD></TR>
|
|
|
860 |
<TR>
|
|
|
861 |
<TD><B>-Txx</B></TD>
|
|
|
862 |
<TD>Display time spent on link</TD></TR>
|
|
|
863 |
<TR>
|
|
|
864 |
<TD><B>-Txx</B></TD>
|
|
|
865 |
<TD>Specify output file type</TD></TR>
|
|
|
866 |
<TR>
|
|
|
867 |
<TD><B>-Tpd</B></TD>
|
|
|
868 |
<TD>Target a Windows .DLL file</TD></TR>
|
|
|
869 |
<TR>
|
|
|
870 |
<TD><B>-Tpe</B></TD>
|
|
|
871 |
<TD>Target a Windows .EXE file</TD></TR>
|
|
|
872 |
<TR>
|
|
|
873 |
<TD><B>-Tpp</B></TD>
|
|
|
874 |
<TD>Generate package</TD></TR>
|
|
|
875 |
<TR>
|
|
|
876 |
<TD><B>-Ud.d</B></TD>
|
|
|
877 |
<TD>Specify image user version</TD></TR>
|
|
|
878 |
<TR>
|
|
|
879 |
<TD><B>-v</B></TD>
|
|
|
880 |
<TD>Full debug information</TD></TR>
|
|
|
881 |
<TR>
|
|
|
882 |
<TD><B>-Vd.d</B></TD>
|
|
|
883 |
<TD>Specify subsystem version</TD></TR>
|
|
|
884 |
<TR>
|
|
|
885 |
<TD><B>-w-</B></TD>
|
|
|
886 |
<TD>Disable all warnings.</TD></TR>
|
|
|
887 |
<TR>
|
|
|
888 |
<TD><B>-wxxx</B></TD>
|
|
|
889 |
<TD>Warning control
|
|
|
890 |
<UL>
|
|
|
891 |
<LI>def - No .DEF file
|
|
|
892 |
<LI>dpl - Duplicate symbol in lib
|
|
|
893 |
<LI>imt - Import does not match previous definition
|
|
|
894 |
<LI>msk - Multiple stack segment
|
|
|
895 |
<LI>bdk - using based linking in .DLL
|
|
|
896 |
<LI>dll - .EXE module built with .DLL extension
|
|
|
897 |
<LI>dup - Duplicate symbol
|
|
|
898 |
<LI>ent - No entry point
|
|
|
899 |
<LI>inq - Extern not qualified with __import
|
|
|
900 |
<LI>srf - Self-relative fixup overflow
|
|
|
901 |
<LI>stk - No stack </LI></UL></TD></TR>
|
|
|
902 |
<TR>
|
|
|
903 |
<TD><B>-x</B></TD>
|
|
|
904 |
<TD>No map</TD></TR></TBODY></TABLE>
|
|
|
905 |
<P><A name=BCCLibs></A>
|
|
|
906 |
<H3>BCC32 Libraries <FONT size=1><A
|
|
|
907 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H3>
|
|
|
908 |
<P>The following is an incomplete listing of the main startup and runtime
|
|
|
909 |
libraries included with BCC32. If you have more details, please send them, and I
|
|
|
910 |
will include them here.
|
|
|
911 |
<P>
|
|
|
912 |
<DL>
|
|
|
913 |
<DT><B><I>OBJ Files</I></B>
|
|
|
914 |
<DT><B>C0D32.OBJ</B>
|
|
|
915 |
<DD>32-bit DLL startup module (cod32w: wide-char version; cod32x: no exception
|
|
|
916 |
handling)
|
|
|
917 |
<DT><B>C0S32.OBJ</B>
|
|
|
918 |
<DD>Unknown
|
|
|
919 |
<DT><B>C0W32.OBJ</B>
|
|
|
920 |
<DD>32-bit GUI EXE startup module (c0w32w: wide-char)
|
|
|
921 |
<DT><B>C0X32.OBJ</B>
|
|
|
922 |
<DD>32-bit console-mode EXE startup module (c0x32w: wide-char)
|
|
|
923 |
<DT><B>FILEINFO.OBJ</B>
|
|
|
924 |
<DD>Passes open file-handle information to child processes. Include this file
|
|
|
925 |
in your link to pass full information about open files to child processes
|
|
|
926 |
created with exec and spawn. Works with the C++ runtime library to inherit
|
|
|
927 |
this information.
|
|
|
928 |
<DT><B>GP.OBJ</B>
|
|
|
929 |
<DD>Prints register-dump information when an exception occurs.
|
|
|
930 |
<DT><B>WILDARGS.OBJ</B>
|
|
|
931 |
<DD>If you want wild-card expansion for you console-mode applications, then
|
|
|
932 |
you should also link in this file when you link your console-mode application.
|
|
|
933 |
It apparently doesn't work for GUI apps. It does the normal DOS-like wild card
|
|
|
934 |
expansion and passes them to argv and argc of your main.
|
|
|
935 |
<P></P>
|
|
|
936 |
<DT><B><I>LIB Files</I></B>
|
|
|
937 |
<DT><B>CW32.LIB</B>
|
|
|
938 |
<DD>32-bit single-threaded static library
|
|
|
939 |
<DT><B>CW32I.LIB</B>
|
|
|
940 |
<DD>32-bit single-thread, dynamic RTL import library for CW3250.DLL. To use
|
|
|
941 |
this import library, you must compile your programs with either -D_RTDLL or
|
|
|
942 |
-tWR options to the compiler. This probably applies to the other "i" libs as
|
|
|
943 |
well.
|
|
|
944 |
<DT><B>CW32MT.LIB</B>
|
|
|
945 |
<DD>32-bit multithread static library
|
|
|
946 |
<DT><B>CW32MTI.LIB</B>
|
|
|
947 |
<DD>Import lib for 32-bit multithread dynamic RTL import library for
|
|
|
948 |
CW3250MT.DLL
|
|
|
949 |
<DT><B>IMPORT32.LIB</B>
|
|
|
950 |
<DD>32-bit import library
|
|
|
951 |
<DT><B>dxextra.lib</B>
|
|
|
952 |
<DD>DirectX static library
|
|
|
953 |
<DT><B>inet.lib</B>
|
|
|
954 |
<DD>Import lib for MS Internet DLLs
|
|
|
955 |
<DT><B>noeh32.lib</B>
|
|
|
956 |
<DD>No exception handling support lib
|
|
|
957 |
<DT><B>ole2w32.lib</B>
|
|
|
958 |
<DD>Import lib for 32-bit OLE 2.0 API
|
|
|
959 |
<DT><B>oleaut32.lib</B>
|
|
|
960 |
<DD>Unknown
|
|
|
961 |
<DT><B>uuid.lib</B>
|
|
|
962 |
<DD>GUID static lib for Direct3d, DirectDraw, DirectSound, Shell extensions,
|
|
|
963 |
DAO, Active Scripting, etc.
|
|
|
964 |
<DT><B>wininet.lib</B>
|
|
|
965 |
<DD>Unknown
|
|
|
966 |
<DT><B>ws2_32.lib</B>
|
|
|
967 |
<DD>Import lib for WinSock 2.0 API </DD></DL>
|
|
|
968 |
<P><A name=TD32>
|
|
|
969 |
<H3>Turbo Debugger Commands <FONT size=1><A
|
|
|
970 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H3><A
|
|
|
971 |
name=TD32-cmdline>
|
|
|
972 |
<H4>Command Line Switches</H4></A>
|
|
|
973 |
<P>Command Line Syntax: <BR>TD32 [options] [program [arguments]] -x- = turn
|
|
|
974 |
option x off
|
|
|
975 |
<TABLE width="90%" border=1>
|
|
|
976 |
<TBODY>
|
|
|
977 |
<TR>
|
|
|
978 |
<TD><B>switch</B></TD>
|
|
|
979 |
<TD><B>Switch Description</B></TD></TR>
|
|
|
980 |
<TR>
|
|
|
981 |
<TD>-as<#></TD>
|
|
|
982 |
<TD>-ar<#> (NT only) Attach to running process: s=stop, r=run, id =
|
|
|
983 |
#</TD></TR>
|
|
|
984 |
<TR>
|
|
|
985 |
<TD>-ae<#></TD>
|
|
|
986 |
<TD>(NT only) Post-mortem event handle, decimal event handle = #</TD></TR>
|
|
|
987 |
<TR>
|
|
|
988 |
<TD>-c<file></TD>
|
|
|
989 |
<TD>Use configuration file <file></TD></TR>
|
|
|
990 |
<TR>
|
|
|
991 |
<TD>-h,-?</TD>
|
|
|
992 |
<TD>Display this help screen</TD></TR>
|
|
|
993 |
<TR>
|
|
|
994 |
<TD>-ji,-jn,-jp,-ju</TD>
|
|
|
995 |
<TD>State restore: i=Ignore old,n=None,p=Prompt old,u=Use old</TD></TR>
|
|
|
996 |
<TR>
|
|
|
997 |
<TD>-l</TD>
|
|
|
998 |
<TD>Assembler startup</TD></TR>
|
|
|
999 |
<TR>
|
|
|
1000 |
<TD>-p</TD>
|
|
|
1001 |
<TD>Use mouse</TD></TR>
|
|
|
1002 |
<TR>
|
|
|
1003 |
<TD>-sc</TD>
|
|
|
1004 |
<TD>No case checking on symbols</TD></TR>
|
|
|
1005 |
<TR>
|
|
|
1006 |
<TD>-sd<dir></TD>
|
|
|
1007 |
<TD>Source file directory <dir></TD></TR>
|
|
|
1008 |
<TR>
|
|
|
1009 |
<TD>-t<dir></TD>
|
|
|
1010 |
<TD>Start with current directory <dir></TD></TR></TBODY></TABLE>
|
|
|
1011 |
<P><A name=TD32-keys>
|
|
|
1012 |
<H4>Keyboard Command Shortcuts <FONT size=1><A
|
|
|
1013 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H4>
|
|
|
1014 |
<TABLE width="90%" border=1>
|
|
|
1015 |
<TBODY>
|
|
|
1016 |
<TR>
|
|
|
1017 |
<TD><B>Key</B></TD>
|
|
|
1018 |
<TD><B>Command</B></TD></TR>
|
|
|
1019 |
<TR>
|
|
|
1020 |
<TD><I>File Menu</I></TD>
|
|
|
1021 |
<TD> </TD></TR>
|
|
|
1022 |
<TR>
|
|
|
1023 |
<TD>Alt-X</TD>
|
|
|
1024 |
<TD>Quit</TD></TR>
|
|
|
1025 |
<TR>
|
|
|
1026 |
<TD><I>Edit Menu</I></TD>
|
|
|
1027 |
<TD> </TD></TR>
|
|
|
1028 |
<TR>
|
|
|
1029 |
<TD>Shift-F3</TD>
|
|
|
1030 |
<TD>Copy</TD></TR>
|
|
|
1031 |
<TR>
|
|
|
1032 |
<TD>Shift-F4</TD>
|
|
|
1033 |
<TD>Paste</TD></TR>
|
|
|
1034 |
<TR>
|
|
|
1035 |
<TD><I>View Menu</I></TD>
|
|
|
1036 |
<TD> </TD></TR>
|
|
|
1037 |
<TR>
|
|
|
1038 |
<TD>F3</TD>
|
|
|
1039 |
<TD>Open Module (source file)</TD></TR>
|
|
|
1040 |
<TR>
|
|
|
1041 |
<TD><I>Run Menu</I></TD>
|
|
|
1042 |
<TD> </TD></TR>
|
|
|
1043 |
<TR>
|
|
|
1044 |
<TD>F9</TD>
|
|
|
1045 |
<TD>Run</TD></TR>
|
|
|
1046 |
<TR>
|
|
|
1047 |
<TD>F4</TD>
|
|
|
1048 |
<TD>Go to cursor</TD></TR>
|
|
|
1049 |
<TR>
|
|
|
1050 |
<TD>F7</TD>
|
|
|
1051 |
<TD>Trace into</TD></TR>
|
|
|
1052 |
<TR>
|
|
|
1053 |
<TD>F8</TD>
|
|
|
1054 |
<TD>Step over</TD></TR>
|
|
|
1055 |
<TR>
|
|
|
1056 |
<TD>Alt-F9</TD>
|
|
|
1057 |
<TD>Execute to...</TD></TR>
|
|
|
1058 |
<TR>
|
|
|
1059 |
<TD>Alt-F8</TD>
|
|
|
1060 |
<TD>Until return</TD></TR>
|
|
|
1061 |
<TR>
|
|
|
1062 |
<TD>Alt-F4</TD>
|
|
|
1063 |
<TD>Back trace</TD></TR>
|
|
|
1064 |
<TR>
|
|
|
1065 |
<TD>Alt-F7</TD>
|
|
|
1066 |
<TD>Instruction trace</TD></TR>
|
|
|
1067 |
<TR>
|
|
|
1068 |
<TD>Ctrl-F2</TD>
|
|
|
1069 |
<TD>Program reset</TD></TR>
|
|
|
1070 |
<TR>
|
|
|
1071 |
<TD><I>Breakpoints Menu</I></TD>
|
|
|
1072 |
<TD> </TD></TR>
|
|
|
1073 |
<TR>
|
|
|
1074 |
<TD>F2</TD>
|
|
|
1075 |
<TD>Toggle breakpoint...</TD></TR>
|
|
|
1076 |
<TR>
|
|
|
1077 |
<TD>Alt-F2</TD>
|
|
|
1078 |
<TD>At breakpoint...</TD></TR>
|
|
|
1079 |
<TR>
|
|
|
1080 |
<TD><I>Data Menu</I></TD>
|
|
|
1081 |
<TD> </TD></TR>
|
|
|
1082 |
<TR>
|
|
|
1083 |
<TD>Ctrl-F4</TD>
|
|
|
1084 |
<TD>Evaluate/modify...</TD></TR>
|
|
|
1085 |
<TR>
|
|
|
1086 |
<TD>Ctrl-F7</TD>
|
|
|
1087 |
<TD>Add watch...</TD></TR>
|
|
|
1088 |
<TR>
|
|
|
1089 |
<TD><I>Window Menu</I></TD>
|
|
|
1090 |
<TD> </TD></TR>
|
|
|
1091 |
<TR>
|
|
|
1092 |
<TD>F5</TD>
|
|
|
1093 |
<TD>Zoom</TD></TR>
|
|
|
1094 |
<TR>
|
|
|
1095 |
<TD>F6</TD>
|
|
|
1096 |
<TD>Next</TD></TR>
|
|
|
1097 |
<TR>
|
|
|
1098 |
<TD>Tab</TD>
|
|
|
1099 |
<TD>Next pane</TD></TR>
|
|
|
1100 |
<TR>
|
|
|
1101 |
<TD>Ctrl-F5</TD>
|
|
|
1102 |
<TD>Size/move</TD></TR>
|
|
|
1103 |
<TR>
|
|
|
1104 |
<TD>Alt-F3</TD>
|
|
|
1105 |
<TD>Close</TD></TR>
|
|
|
1106 |
<TR>
|
|
|
1107 |
<TD>Alt-F6</TD>
|
|
|
1108 |
<TD>Undo close</TD></TR>
|
|
|
1109 |
<TR>
|
|
|
1110 |
<TD>Alt-F5</TD>
|
|
|
1111 |
<TD>User screen</TD></TR>
|
|
|
1112 |
<TR>
|
|
|
1113 |
<TD><I>Help Menu</I></TD>
|
|
|
1114 |
<TD> </TD></TR>
|
|
|
1115 |
<TR>
|
|
|
1116 |
<TD>Shift-F1</TD>
|
|
|
1117 |
<TD>Help Index</TD></TR>
|
|
|
1118 |
<TR>
|
|
|
1119 |
<TD>Alt-F1</TD>
|
|
|
1120 |
<TD>Previous topic</TD></TR>
|
|
|
1121 |
<TR>
|
|
|
1122 |
<TD>xx</TD>
|
|
|
1123 |
<TD>xx</TD></TR>
|
|
|
1124 |
<TR>
|
|
|
1125 |
<TD>xx</TD>
|
|
|
1126 |
<TD>xx</TD></TR></TBODY></TABLE>
|
|
|
1127 |
<P><A name=TD32-help>
|
|
|
1128 |
<H4>TD Help <FONT size=1><A
|
|
|
1129 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H4></A>
|
|
|
1130 |
<P>The following list contains all the topics covered by TD help. Those
|
|
|
1131 |
especially relevant to C and C++ programming are presented here.
|
|
|
1132 |
<UL>
|
|
|
1133 |
<LI><B>Help on Help</B> <BR>Welcome to Turbo Debugger's help facility. Use the
|
|
|
1134 |
following keys to move around: <BR>
|
|
|
1135 |
<TABLE width="90%" border=1>
|
|
|
1136 |
<TBODY>
|
|
|
1137 |
<TR>
|
|
|
1138 |
<TD>Arrows - Move to topic</TD>
|
|
|
1139 |
<TD>Enter - Go to topic</TD></TR>
|
|
|
1140 |
<TR>
|
|
|
1141 |
<TD>PgUp - Previous screen</TD>
|
|
|
1142 |
<TD>Esc - Exit help</TD></TR>
|
|
|
1143 |
<TR>
|
|
|
1144 |
<TD>PgDn- Next screen</TD>
|
|
|
1145 |
<TD>F1 - Help index</TD></TR>
|
|
|
1146 |
<TR>
|
|
|
1147 |
<TD>Alt-F1 - Previous screen</TD>
|
|
|
1148 |
<TD>Ctrl-PgUp - First screen</TD></TR></TBODY></TABLE>
|
|
|
1149 |
<LI><B>Assembler</B>
|
|
|
1150 |
<LI><B>Assembler constants</B>
|
|
|
1151 |
<LI><B>Assembler expressions</B>
|
|
|
1152 |
<LI><B>Assembler operators</B>
|
|
|
1153 |
<LI><B>Assembler strings</B>
|
|
|
1154 |
<LI><B>Assembler variables</B>
|
|
|
1155 |
<LI><B>Auto-variables</B> <BR>Auto-variables are defined only within the
|
|
|
1156 |
function or block in which they are declared, and they exist only when the
|
|
|
1157 |
function they are in is called. They don't retain their values from one
|
|
|
1158 |
function call to the next.
|
|
|
1159 |
<P>Turbo Debugger handles auto-variables by emulating the current language's
|
|
|
1160 |
variable scoping rules. That is, whenever the program is stopped inside a
|
|
|
1161 |
function, the auto-variables for that function are added to or supersede the
|
|
|
1162 |
static and local symbols already known. They can be used in expressions
|
|
|
1163 |
exactly as they would be used in a statement inside the function.
|
|
|
1164 |
<P>The bottom pane of the Variables window shows the current value for all
|
|
|
1165 |
auto-variables in the active function.
|
|
|
1166 |
<P></P>
|
|
|
1167 |
<LI><B>Breakpoints</B> <BR>You use breakpoints to specify something you want
|
|
|
1168 |
done when your program has run to a specific source line number or address.
|
|
|
1169 |
<P>You can set a breakpoint to stop your program at any source line or
|
|
|
1170 |
address. Position the cursor on the desired line and press F2. Press F2 again
|
|
|
1171 |
to clear the breakpoint.
|
|
|
1172 |
<P>You can also set a breakpoint by clicking the mouse in one of the first two
|
|
|
1173 |
columns of the line that you want to set the breakpoint on. Turbo Debugger's
|
|
|
1174 |
breakpoints perform all the same jobs as the breakpoints, watchpoints, and
|
|
|
1175 |
tracepoints of other debuggers.
|
|
|
1176 |
<P>A breakpoint can be instructed to perform one of the following actions: <PRE>Break Stop your program
|
|
|
1177 |
Log Log the value of variables
|
|
|
1178 |
Execute Execute an expression
|
|
|
1179 |
</PRE>
|
|
|
1180 |
<P>You can set a breakpoint to execute on one of the following conditions: <PRE>Always Every time it is encountered
|
|
|
1181 |
Expression true Only when an expression is true
|
|
|
1182 |
Changed memory Only when a memory area changes
|
|
|
1183 |
Hardware When a hardware breakpoint occurs
|
|
|
1184 |
</PRE>
|
|
|
1185 |
<P>Breakpoints can also be qualified by setting a Pass Count that specifies
|
|
|
1186 |
how many times the breakpoint must be passed over before being activated.
|
|
|
1187 |
<P>A breakpoint can also be set at a global address, which means that it
|
|
|
1188 |
occurs on every source line or instruction address. This allows you to watch
|
|
|
1189 |
the value of a variable as each line is executed, or to stop when a variable
|
|
|
1190 |
or area of memory changes value.
|
|
|
1191 |
<P></P>
|
|
|
1192 |
<LI><B>Byte lists</B>
|
|
|
1193 |
<LI><B>C constants</B> <BR>Constants can be either floating point or integer.
|
|
|
1194 |
A floating-point constant contains a decimal point and can be in decimal or
|
|
|
1195 |
scientific notation; for example, <PRE> 1.234 4.5e+11
|
|
|
1196 |
</PRE>Integer constants are decimal unless you use one of the C conventions
|
|
|
1197 |
for overriding the radix: <PRE> Format Radix
|
|
|
1198 |
=====================
|
|
|
1199 |
digits Decimal
|
|
|
1200 |
0digits Octal
|
|
|
1201 |
0Xdigits Hexadecimal
|
|
|
1202 |
0xdigits Hexadecimal
|
|
|
1203 |
</PRE>Ending any integer constant with "l" or "L" makes it into a long
|
|
|
1204 |
constant.
|
|
|
1205 |
<P></P>
|
|
|
1206 |
<LI><B>C Debugging tips</B> <BR>This TD help section is meant to aid the less
|
|
|
1207 |
experienced programmer in finding bugs in C programs. Some examples of common
|
|
|
1208 |
pitfalls are given, along with suggestions on how to resolve and avoid them.
|
|
|
1209 |
See the TD help for details.
|
|
|
1210 |
<P></P>
|
|
|
1211 |
<LI><B>C expressions</B> <BR>The full C expression syntax is supported, which
|
|
|
1212 |
allows you to evaluate any C expression that the compiler accepts.
|
|
|
1213 |
<P>Variables can be changed using the full range of C assignment operators or
|
|
|
1214 |
the increment and decrement operators (++ and --).
|
|
|
1215 |
<P>A C expression can contain the following elements: Operators, Strings,
|
|
|
1216 |
Variables, Constants
|
|
|
1217 |
<P></P>
|
|
|
1218 |
<LI><B>C operators</B> <BR>Turbo Debugger supports all the C operators and one
|
|
|
1219 |
additional special operator, ::, which has the highest priority. You use it to
|
|
|
1220 |
generate constant far-memory pointers to characters; for example, <PRE> 0x1234::0x5678
|
|
|
1221 |
</PRE>The primary expression operators <PRE> () [] . ->
|
|
|
1222 |
</PRE>have the next highest priority and group from left to right.
|
|
|
1223 |
<P>The unary operators <PRE> * & ! ~ ++ --
|
|
|
1224 |
</PRE>have priority less than the primary operators but greater than the
|
|
|
1225 |
binary operators and group from right to left.
|
|
|
1226 |
<P>The binary operators are listed here in decreasing priority. Operators on
|
|
|
1227 |
the same line have the same priority. <PRE>highest * / %
|
|
|
1228 |
+ -
|
|
|
1229 |
>> <<
|
|
|
1230 |
< > <= >=
|
|
|
1231 |
== !=
|
|
|
1232 |
&
|
|
|
1233 |
^
|
|
|
1234 |
|
|
|
|
1235 |
&&
|
|
|
1236 |
lowest ||
|
|
|
1237 |
</PRE>
|
|
|
1238 |
<P>The single ternary operator has a priority less than any of the binary
|
|
|
1239 |
operators: <PRE> ?:
|
|
|
1240 |
</PRE>The assignment operators all have the same priority below the ternary
|
|
|
1241 |
operator and group from right to left: <PRE> = += -= *= /= %= >>= <<= &= ^= |=
|
|
|
1242 |
</PRE>
|
|
|
1243 |
<P></P>
|
|
|
1244 |
<LI><B>C strings</B> <BR>C strings in Turbo Debugger use exactly the same
|
|
|
1245 |
syntax as in C source files: a series of characters between double quotes ("
|
|
|
1246 |
"). All characters are inserted literally except for the backslash, which is
|
|
|
1247 |
used to enter special character codes into the string.
|
|
|
1248 |
<P>If a backslash is followed by any character except one of those listed
|
|
|
1249 |
here, that character is inserted into the string unchanged. This allows the
|
|
|
1250 |
string delimiter double-quote character (") to be entered by typing \".
|
|
|
1251 |
<P>The following escape sequences can be used: <PRE>Sequence Value Character
|
|
|
1252 |
----------------------------
|
|
|
1253 |
\a 0x07 Bell
|
|
|
1254 |
\b 0x08 Backspace
|
|
|
1255 |
\f 0x0c Formfeed
|
|
|
1256 |
\n 0x0a Newline (line feed)
|
|
|
1257 |
\r 0x0d Carriage return
|
|
|
1258 |
\t 0x09 Horizontal tab
|
|
|
1259 |
\v 0x0b Vertical tab
|
|
|
1260 |
\\ \ Backslash
|
|
|
1261 |
\xnn nn Hex byte value
|
|
|
1262 |
\nnn nnn Octal byte value
|
|
|
1263 |
</PRE>
|
|
|
1264 |
<P>
|
|
|
1265 |
<P></P>
|
|
|
1266 |
<LI><B>C variables</B> <BR>Variables are names for data items in your program.
|
|
|
1267 |
A C variable name starts with a letter (a - z, A - Z) or the underscore
|
|
|
1268 |
character (_). Subsequent characters in the symbol can be digits (0 - 9) as
|
|
|
1269 |
well as these characters.
|
|
|
1270 |
<P>Normally, a variable name obeys the C scoping rules, with auto-variables
|
|
|
1271 |
overriding static variables of the same name, which override globals. You can
|
|
|
1272 |
override this scoping if you wish to access variables in other scopes.
|
|
|
1273 |
<P></P>
|
|
|
1274 |
<LI><B>Command line options</B> <BR>Here's the general form of the DOS command
|
|
|
1275 |
line used to start Turbo Debugger: <PRE> td [options] [program_name [program_args] ]
|
|
|
1276 |
</PRE>Items enclosed in brackets are optional. "Options" are described below.
|
|
|
1277 |
"Program_name" is the name of the program to debug. If no extension is
|
|
|
1278 |
supplied, .EXE is presumed. "Program_args" are any arguments required by the
|
|
|
1279 |
program being debugged. Do not place debugger options here; they should come
|
|
|
1280 |
before the name of the program being debugged.
|
|
|
1281 |
<P>Example command lines: <PRE>Command Action
|
|
|
1282 |
======= ======
|
|
|
1283 |
td Start the debugger with no
|
|
|
1284 |
program, default options
|
|
|
1285 |
|
|
|
1286 |
td -r prog1 a Start the debugger with -r
|
|
|
1287 |
option, load program "prog1"
|
|
|
1288 |
with one argument "a"
|
|
|
1289 |
|
|
|
1290 |
td prog2 -x Start the debugger with default
|
|
|
1291 |
options, load "prog2" with one
|
|
|
1292 |
argument "-x".
|
|
|
1293 |
</PRE>An option consists of a hyphen, followed by one or more letters and a
|
|
|
1294 |
possible text or numeric argument. Options override default configuration
|
|
|
1295 |
settings from the configuration file. To disable an option set in the
|
|
|
1296 |
configuration file, follow the option with another hyphen, for example, <PRE> td -p- myprog arg1 arg2
|
|
|
1297 |
</PRE>
|
|
|
1298 |
<P></P>
|
|
|
1299 |
<LI><B>Configuration file</B> <BR>The configuration file allows command-line
|
|
|
1300 |
options to be set automatically each time the debugger is started. The
|
|
|
1301 |
configuration file is searched for first in the current directory, then in the
|
|
|
1302 |
directory containing the Turbo Debugger executable program. This allows you to
|
|
|
1303 |
have a system-wide configuration in the PATH and custom configurations for
|
|
|
1304 |
individual projects.
|
|
|
1305 |
<P>Options on the command line override the corresponding setting in the
|
|
|
1306 |
configuration file.
|
|
|
1307 |
<P></P>
|
|
|
1308 |
<LI><B>Cursor in List panes</B> <BR>In a List pane items can be selected in
|
|
|
1309 |
one of two ways:
|
|
|
1310 |
<UL>
|
|
|
1311 |
<LI>Use the cursor keys to position the highlight bar.
|
|
|
1312 |
<LI>If the List pane has a blinking cursor, start to type the letters making
|
|
|
1313 |
up an entry. The highlight bar moves to the first item that starts with the
|
|
|
1314 |
letters typed so far; this allows you to select items with a minimum of
|
|
|
1315 |
typing. This is referred to as "incremental matching." </LI></UL>The following
|
|
|
1316 |
keys can be used to move the highlight bar in a List pane: <PRE>Up Move up one item
|
|
|
1317 |
Down Move down one item
|
|
|
1318 |
PgUp Move up one pane height
|
|
|
1319 |
PgDn Move down one pane height
|
|
|
1320 |
Ctrl-PgUp Move to first item in list
|
|
|
1321 |
Ctrl-PgDn Move to last item in list
|
|
|
1322 |
Esc Cancel incremental search
|
|
|
1323 |
Enter Select item in list
|
|
|
1324 |
a - z Incremental match on list items
|
|
|
1325 |
</PRE>
|
|
|
1326 |
<P></P>
|
|
|
1327 |
<LI><B>Cursor in Text panes</B> <BR>Use the following keys to control the
|
|
|
1328 |
cursor position in Text panes: <PRE>Up Move cursor up one line
|
|
|
1329 |
Down Move cursor down one line
|
|
|
1330 |
Right Move cursor right one character
|
|
|
1331 |
Left Move cursor left one character
|
|
|
1332 |
Ctrl-Right Move right one word
|
|
|
1333 |
Ctrl-Left Move left one word
|
|
|
1334 |
PgUp Move up one page
|
|
|
1335 |
PgDn Move down one page
|
|
|
1336 |
Ctrl-Home Go to top line of window
|
|
|
1337 |
Ctrl-End Go to bottom line of window
|
|
|
1338 |
Ctrl-PgUp Go to first line in file
|
|
|
1339 |
Ctrl-PgDn Go to last line in file
|
|
|
1340 |
Home Go to beginning of current line
|
|
|
1341 |
End Go to end of current line
|
|
|
1342 |
</PRE>You can mark a block of text by pressing Ins, then moving the cursor
|
|
|
1343 |
within the same line. Some prompts use this marked block as their default
|
|
|
1344 |
response entry.
|
|
|
1345 |
<P></P>
|
|
|
1346 |
<LI><B>CPU Flags</B>
|
|
|
1347 |
<LI><B>Disassembler</B>
|
|
|
1348 |
<LI><B>DOS commands</B>
|
|
|
1349 |
<LI><B>Error messages</B>
|
|
|
1350 |
<LI><B>Examining Data</B> <BR>You can examine data items with the Inspect
|
|
|
1351 |
option on the Data menu. You can inspect any expression that evaluates to a
|
|
|
1352 |
memory pointer, both simple variable names and complicated address
|
|
|
1353 |
expressions.
|
|
|
1354 |
<P>You can also examine data items by pointing to a variable name in a Text or
|
|
|
1355 |
List pane and specifying the Inspect option from the speed menu for that pane.
|
|
|
1356 |
In a Text pane, this command works if the cursor is anywhere within the
|
|
|
1357 |
variable name you wish to inspect. You can also use the Ins key to mark an
|
|
|
1358 |
expression to inspect.
|
|
|
1359 |
<P></P>
|
|
|
1360 |
<LI><B>Expressions</B> <BR>You can evaluate an expression using any one of the
|
|
|
1361 |
languages supported by Turbo Debugger: <PRE> C Pascal Assembler
|
|
|
1362 |
</PRE>Use the Options/Language command to select which language is used to
|
|
|
1363 |
interpret expressions you type in. Normally, Turbo Debugger uses the language
|
|
|
1364 |
that you used to write the code at the current program address.
|
|
|
1365 |
<P>When you display an expression, you can enter an optional format control
|
|
|
1366 |
string that controls how the result is displayed.
|
|
|
1367 |
<P></P>
|
|
|
1368 |
<LI><B>Format Control</B> <BR>When you supply an expression to be displayed,
|
|
|
1369 |
Turbo Debugger displays it in a suitable format based on what type of data it
|
|
|
1370 |
is. If you wish to change the default display format for an expression, place
|
|
|
1371 |
a comma at the end of the expression, then supply an optional repeat count
|
|
|
1372 |
followed by an optional format letter. You can supply a repeat count only for
|
|
|
1373 |
pointers or arrays. If you use a format control on the wrong data type, it has
|
|
|
1374 |
no effect. <PRE>c Displays a character or string expression
|
|
|
1375 |
as raw characters. Normally, non-printing
|
|
|
1376 |
character values are displayed as some type
|
|
|
1377 |
of escape or numeric format. This option
|
|
|
1378 |
forces the characters to be displayed using
|
|
|
1379 |
the full IBM display character set.
|
|
|
1380 |
|
|
|
1381 |
d Displays an integer as a decimal number.
|
|
|
1382 |
|
|
|
1383 |
f# Displays a floating-point format with the
|
|
|
1384 |
specified number of digits. If you don't
|
|
|
1385 |
supply a number of digits, as many as
|
|
|
1386 |
necessary are used.
|
|
|
1387 |
|
|
|
1388 |
m Displays a memory-referencing expression
|
|
|
1389 |
as hex bytes.
|
|
|
1390 |
|
|
|
1391 |
md Displays a memory-referencing expression as
|
|
|
1392 |
decimal bytes.
|
|
|
1393 |
|
|
|
1394 |
p Displays a raw pointer value, showing
|
|
|
1395 |
segment as a register name if applicable.
|
|
|
1396 |
</PRE>
|
|
|
1397 |
<P></P>
|
|
|
1398 |
<LI><B>Function Keys</B> <BR>There are function keys for many commonly used
|
|
|
1399 |
functions. The regular function keys invoke the following commands: <BR><PRE>F1 Help F2 Toggle Breakpoint
|
|
|
1400 |
F3 View Module F4 Go to Cursor
|
|
|
1401 |
F5 Zoom Window F6 Next Window
|
|
|
1402 |
F7 Trace Into F8 Step Over
|
|
|
1403 |
F9 Run F10 Command menu
|
|
|
1404 |
</PRE>
|
|
|
1405 |
<P>The Alt function keys give you access to other commands you use fairly
|
|
|
1406 |
often. <BR><PRE>Alt F1 Last help Alt F2 Breakpoint At
|
|
|
1407 |
Alt F3 Close Window Alt F4 Back trace
|
|
|
1408 |
Alt F5 User Screen Alt F6 Undo Close
|
|
|
1409 |
Alt F7 Instr. Trace Alt F8 Until Return
|
|
|
1410 |
Alt F9 Execute To Alt F10 Speed menu
|
|
|
1411 |
</PRE>
|
|
|
1412 |
<P></P>
|
|
|
1413 |
<LI><B>Global variables</B> <BR>Global variables are those defined as being
|
|
|
1414 |
accessible to all modules in the program. You can view the global variables in
|
|
|
1415 |
a program by creating a Variables window. The global variables appear in the
|
|
|
1416 |
upper pane of that window.
|
|
|
1417 |
<P></P>
|
|
|
1418 |
<LI><B>Help line</B> <BR>The bottom line of the screen always displays help
|
|
|
1419 |
about some keys specific to the current environment. This line changes
|
|
|
1420 |
depending on where you are.
|
|
|
1421 |
<P>Normally, it shows the most commonly used function key commands. Press and
|
|
|
1422 |
hold down the Alt key and it shows the commonly used Alt function keys.
|
|
|
1423 |
<P></P>
|
|
|
1424 |
<LI><B>Hierarchy window</B> <BR>The Hierarchy command opens an Object
|
|
|
1425 |
Hierarchy window that shows all the Pascal or C++ object types, both in
|
|
|
1426 |
alphabetical order and as a tree showing ancestor/descendant relationships.
|
|
|
1427 |
<P></P>
|
|
|
1428 |
<LI><B>Inspectors</B> <BR>You'll probably use Inspectors more than any other
|
|
|
1429 |
sort of window. You can create an Inspector in one of two ways:
|
|
|
1430 |
<UL>
|
|
|
1431 |
<LI>Use the Inspect speed menu command in a pane by typing Ctrl-I or Alt-F10
|
|
|
1432 |
I.
|
|
|
1433 |
<LI>Use the Data Inspect command from the main menu. </LI></UL>An Inspector
|
|
|
1434 |
shows the contents of a data structure in the program you are debugging. It
|
|
|
1435 |
also allows you to modify individual variables or members of a data structure.
|
|
|
1436 |
|
|
|
1437 |
<P>The most common way to use Inspectors is to open one by placing the cursor
|
|
|
1438 |
on what you want to inspect and pressing Ctrl-I. After you've examined the
|
|
|
1439 |
data item, press the Esc key to remove the Inspector window.
|
|
|
1440 |
<P>If you have several Inspectors on the screen, the Window Close command (or
|
|
|
1441 |
its equivalent, the Alt-F3 key) removes them all at once.
|
|
|
1442 |
<P></P>
|
|
|
1443 |
<LI><B>Interrupt key</B> <BR>The Interrupt key can be pressed at any time your
|
|
|
1444 |
program is running. Turbo Debugger immediately regains control, allowing you
|
|
|
1445 |
to examine the state of the program.
|
|
|
1446 |
<P>Usually the Interrupt key is the Ctrl-Break key combination; you can change
|
|
|
1447 |
this to another key by using the TDINST customization program.
|
|
|
1448 |
<P></P>
|
|
|
1449 |
<LI><B>Logging events</B> <BR>Turbo Debugger's breakpoints perform all the
|
|
|
1450 |
same jobs as the breakpoints, watchpoints, and tracepoints of other debuggers.
|
|
|
1451 |
|
|
|
1452 |
<P>A breakpoint can be instructed to perform one of the following actions: <PRE> Break Stop your program
|
|
|
1453 |
Log Log the value of variables
|
|
|
1454 |
Execute Execute an expression
|
|
|
1455 |
</PRE>
|
|
|
1456 |
<P></P>
|
|
|
1457 |
<LI><B>Macros</B> <BR>The Options Macros command lets you set and clear macros
|
|
|
1458 |
assigned to different keys.
|
|
|
1459 |
<P>Select one of the following commands to learn more about it: <PRE> Create Remove
|
|
|
1460 |
Delete All Stop Recording
|
|
|
1461 |
</PRE>You can use macros to record command sequences that you often repeat, as
|
|
|
1462 |
well as to record commands from the start of a session. This is very useful
|
|
|
1463 |
when you must keep restarting and getting back to a certain place in your
|
|
|
1464 |
program.
|
|
|
1465 |
<P></P>
|
|
|
1466 |
<LI><B>Main Menu</B> <BR>The menu bar appears on the top line of the screen.
|
|
|
1467 |
You can return to this menu at any time by pressing the F10 hot key. A
|
|
|
1468 |
combination of pull-down and pop-up menus gives you easy access to all the
|
|
|
1469 |
menu commands and options. The menu bar has the following commands: <PRE> System Breakpoints
|
|
|
1470 |
File Data
|
|
|
1471 |
View Window
|
|
|
1472 |
Run Options
|
|
|
1473 |
Edit
|
|
|
1474 |
</PRE>Access the System menu in the top left corner by pressing Alt-space.
|
|
|
1475 |
<P>
|
|
|
1476 |
<UL>
|
|
|
1477 |
<LI>System <BR>The System menu lets you invoke commands that affect the
|
|
|
1478 |
entire screen (desktop).
|
|
|
1479 |
<P>The Repaint desktop command redisplays the entire Turbo Debugger screen.
|
|
|
1480 |
This is useful if screen swapping has been disabled and the debugger screen
|
|
|
1481 |
has become corrupted with output from the program you are debugging.
|
|
|
1482 |
<P>Use the Options/Display options command to set how screen updating is
|
|
|
1483 |
done.
|
|
|
1484 |
<P>The Restore Standard command restores the window layout to the way it was
|
|
|
1485 |
when the debugger was first started.
|
|
|
1486 |
<P>The About command shows the sign-on copyright screen that identifies the
|
|
|
1487 |
version of Turbo Debugger that you are using.
|
|
|
1488 |
<P></P>
|
|
|
1489 |
<LI>File <BR>The File menu has a number of options that deal with operations
|
|
|
1490 |
external to Turbo Debugger, such as loading programs to debug, executing DOS
|
|
|
1491 |
commands, and returning to DOS.
|
|
|
1492 |
<P>The Open command loads a program to debug from disk. You are prompted for
|
|
|
1493 |
the name of the program to debug. You don't need to supply the .EXE or .COM
|
|
|
1494 |
extension.
|
|
|
1495 |
<P>You can supply any arguments to the program by specifying them after the
|
|
|
1496 |
program name, just as you would on the DOS command line.
|
|
|
1497 |
<P>The Change Dir command lets you set a new current drive and/or directory
|
|
|
1498 |
by prompting you for the new drive and/or directory name.
|
|
|
1499 |
<P>The prompt is initialized to the current drive and directory, so you can
|
|
|
1500 |
also use this command to examine the current drive and directory settings.
|
|
|
1501 |
<P>The File Get Info command displays a window that shows you the current
|
|
|
1502 |
state of the program you are debugging. This includes:
|
|
|
1503 |
<UL>
|
|
|
1504 |
<LI>the program name
|
|
|
1505 |
<LI>where and why your program is stopped
|
|
|
1506 |
<LI>main memory usage
|
|
|
1507 |
<LI>interrupts your program has intercepted
|
|
|
1508 |
<LI>the DOS version
|
|
|
1509 |
<LI>Hardware/software breakpoints indicator
|
|
|
1510 |
<LI>the current date and time </LI></UL>
|
|
|
1511 |
<P>The Attach command lets you debug a program that is already running and
|
|
|
1512 |
was not started by Turbo Debugger. You supply the process ID of the process
|
|
|
1513 |
that you wish to debug. Turbo debugger then interrupts the process just as
|
|
|
1514 |
if a breakpoint had been encountered.
|
|
|
1515 |
<P>The Quit command returns control to DOS. Alt-X is the hot key that
|
|
|
1516 |
returns to DOS from any point while Turbo Debugger is running.
|
|
|
1517 |
<P>The memory for your program image is freed, and any open file handles are
|
|
|
1518 |
closed. If your program has allocated memory blocks from DOS, Turbo Debugger
|
|
|
1519 |
frees these as well.
|
|
|
1520 |
<P></P>
|
|
|
1521 |
<LI>Edit <BR>The Edit menu has options that let you put things onto the
|
|
|
1522 |
clipboard and to place items on the clipboard into the current window.
|
|
|
1523 |
<P>The Copy command copies the currently highlighted item or position in a
|
|
|
1524 |
window to the clipboard. You can then use the Paste command to put the item
|
|
|
1525 |
somewhere else.
|
|
|
1526 |
<P>The Paste command copies an item from the clipboard into the current
|
|
|
1527 |
context in a window. You are given a list of clipboard items that are able
|
|
|
1528 |
to be used in the current context. To see the entire contents of the
|
|
|
1529 |
clipboard, use the View/Clipboard main menu command.
|
|
|
1530 |
<P>The Copy to log command copies the currently highlighted item or position
|
|
|
1531 |
in a window to the Log window.
|
|
|
1532 |
<P>The Edit Dump Pane to Log command writes the contents of the current pane
|
|
|
1533 |
to the Log window. This can be useful when you want to compare the values of
|
|
|
1534 |
some variables at two different places in the program. You can dump the
|
|
|
1535 |
contents of the Watches window or some Inspectors, then execute some more of
|
|
|
1536 |
your program and compare the values recorded in the log with the current
|
|
|
1537 |
values.
|
|
|
1538 |
<P></P>
|
|
|
1539 |
<LI>View <BR>The View menu commands open windows that "view" part of the
|
|
|
1540 |
program you are debugging. Use the Another option in this menu to open
|
|
|
1541 |
another instance of a Dump, File, or Module window that you already have
|
|
|
1542 |
displayed on the screen.
|
|
|
1543 |
<P>The Breakpoints command opens a Breakpoints window that shows a list of
|
|
|
1544 |
the current breakpoints, their conditions, and what they do when they're
|
|
|
1545 |
triggered. In Turbo Debugger, breakpoints combine the functions of
|
|
|
1546 |
breakpoints, watch points, and trace points.
|
|
|
1547 |
<P>The CPU command opens a CPU window that shows disassembled instructions,
|
|
|
1548 |
a hex data dump, the CPU registers and flags, and the stack contents You can
|
|
|
1549 |
also patch code using the built-in assembler. If there is already a CPU
|
|
|
1550 |
window on the screen, you are positioned in that window.
|
|
|
1551 |
<P>The Dump command opens a Dump window showing the contents of an area of
|
|
|
1552 |
memory that you specify. You can view the data as raw hex bytes or in any of
|
|
|
1553 |
the supported number formats, including 32-bit integers and four types of
|
|
|
1554 |
floating-point numbers. This window works the same as the Data pane in a CPU
|
|
|
1555 |
window. This window is useful if you just want to look at an area of memory,
|
|
|
1556 |
and don't care about the rest of the CPU state that the CPU window displays.
|
|
|
1557 |
|
|
|
1558 |
<P>The Execution history command opens an Execution history window that
|
|
|
1559 |
shows a list of instruction that can be undone, and a list of keystroke
|
|
|
1560 |
checkpoints that you can recover to. This lets you "go back in time" if you
|
|
|
1561 |
step beyond the location where a problem occurs.
|
|
|
1562 |
<P>The File command opens a File window that shows the contents of a file
|
|
|
1563 |
that you specify. You are prompted for the file name; you can enter a
|
|
|
1564 |
wildcard specification and select a file from the displayed list. You can
|
|
|
1565 |
also edit the contents of the file in hex or ASCII text. If there is already
|
|
|
1566 |
a File window on the screen, the file you selected is displayed in that
|
|
|
1567 |
window. To open another File window, use the View/Another main menu command.
|
|
|
1568 |
|
|
|
1569 |
<P>The Hierarchy command opens an Object Hierarchy window that shows all the
|
|
|
1570 |
Pascal or C++ object types, both in alphabetical order and as a tree showing
|
|
|
1571 |
ancestor/descendant relationships.
|
|
|
1572 |
<P>The Log command opens a Log window that shows a scrolling log of messages
|
|
|
1573 |
from the following events:
|
|
|
1574 |
<UL>
|
|
|
1575 |
<LI>Breakpoints that log an expression
|
|
|
1576 |
<LI>Program trace, step, and breakpoint addresses
|
|
|
1577 |
<LI>User comments
|
|
|
1578 |
<LI>Window pane dumps </LI></UL>The contents of the Log window can also be
|
|
|
1579 |
written continuously to disk.
|
|
|
1580 |
<P>The Clipboard command opens a Clipboard window showing the items copied
|
|
|
1581 |
to the clipboard. You can examine clipboard items, delete them, or open a
|
|
|
1582 |
Window to show you the contents of an item. Use the Edit/Copy command to put
|
|
|
1583 |
text, data and addresses onto the clipboard. Use the Edit/Paste command to
|
|
|
1584 |
place clipboard items into prompts or windows. The type of data copied to
|
|
|
1585 |
the clipboard depends on which window or pane it is clipped from.
|
|
|
1586 |
<P>The Module command opens a Module window that shows a source file for the
|
|
|
1587 |
module. You can select a module to view from the list of modules in the
|
|
|
1588 |
program. If there is already a Module window on the screen, the module you
|
|
|
1589 |
selected is displayed in that window. If you want to open another Module
|
|
|
1590 |
window, use the View/Another main menu command. F3 is the hot key for this
|
|
|
1591 |
command. The Module window title shows the name of the module you are
|
|
|
1592 |
viewing, the current source file for the module, and the line number that
|
|
|
1593 |
the cursor is on. If the source file has been changed since the module was
|
|
|
1594 |
compiled and linked into your program, the message (modified) appears before
|
|
|
1595 |
the current line number. This warns you that your source file might be out
|
|
|
1596 |
of sync with the program you are debugging and that the cursor might not
|
|
|
1597 |
always appear on the correct line of source code.
|
|
|
1598 |
<P>The Numeric Processor command opens a Numeric Processor window that shows
|
|
|
1599 |
the contents of the 80x87 stack registers, the control bits, and the status
|
|
|
1600 |
bits. You can modify the floating-point registers and the control and status
|
|
|
1601 |
fields of the numeric processor.
|
|
|
1602 |
<P>The Registers command opens a window that shows the current contents of
|
|
|
1603 |
the CPU registers and flags. You can examine or change their values. This
|
|
|
1604 |
window works the same as the Register pane in a CPU window. It is useful if
|
|
|
1605 |
you just want to look at the CPU registers, and don't care about the rest of
|
|
|
1606 |
the CPU state displayed in the CPU window.
|
|
|
1607 |
<P>The Stack command opens a Stack window that shows the currently active
|
|
|
1608 |
calling stack. All functions starting from the call at the start of the
|
|
|
1609 |
program are shown, along with their arguments. From this window, you can
|
|
|
1610 |
also examine the variables inside a particular instance of a function on the
|
|
|
1611 |
stack; this is useful, for example, if you are using a recursive function.
|
|
|
1612 |
<P>The Variables command opens a Variables window that shows a list of
|
|
|
1613 |
symbols and their values for the current module and function, as well as a
|
|
|
1614 |
list of your program's global symbols and their values.
|
|
|
1615 |
<P>The Watches command opens a Watches window displaying the value of
|
|
|
1616 |
variables or expressions in your program that you specified using either the
|
|
|
1617 |
Data Add Watch main menu command or the Watch speed menu command in a Module
|
|
|
1618 |
window.
|
|
|
1619 |
<P></P>
|
|
|
1620 |
<LI>Run <BR>The Run menu commands execute your program. If Screen Updating
|
|
|
1621 |
is enabled, your program screen is restored before execution continues.
|
|
|
1622 |
<P>The Trace Into command executes a single instruction or source line. If
|
|
|
1623 |
the current window is not a CPU window, the next source line is executed. If
|
|
|
1624 |
the current window is a CPU window, a single instruction is executed. Some
|
|
|
1625 |
instructions cause the CPU to execute the following instruction as well as
|
|
|
1626 |
the current instruction. Among these are instructions such as loading of
|
|
|
1627 |
segment registers, for example, MOV SS,AX. The F7 key is the hot key that
|
|
|
1628 |
executes this command.
|
|
|
1629 |
<P>The Step Over command executes a single instruction or source line and
|
|
|
1630 |
skips over any procedure calls. If the current window is not a CPU window,
|
|
|
1631 |
the next source line is executed. If any part of the source line contains
|
|
|
1632 |
function calls, they are executed without stopping. If the current window is
|
|
|
1633 |
a CPU window, a single instruction is executed. If the current instruction
|
|
|
1634 |
is a CALL instruction, the entire subroutine is executed without
|
|
|
1635 |
interruption, and the program stops at the instruction following the CALL
|
|
|
1636 |
instruction. Instructions with a REP, REPNZ, or REPNE prefix are also
|
|
|
1637 |
executed without interruption. The F8 key is the hot key that executes this
|
|
|
1638 |
command.
|
|
|
1639 |
<P>The Go to Cursor command executes your program until it reaches the
|
|
|
1640 |
currently highlighted source or instruction line. The current window must be
|
|
|
1641 |
a CPU or a Module window so that the location to execute to can be
|
|
|
1642 |
determined. The F4 key is the hot key that executes this command.
|
|
|
1643 |
<P>The Execute To command executes your program and stops at the specified
|
|
|
1644 |
location in the program. You are prompted for the program address at which
|
|
|
1645 |
to stop. You can enter an address in any of the valid address formats.
|
|
|
1646 |
Alt-F9 is the hot key that executes this command.
|
|
|
1647 |
<P>The Program Reset command reloads the current program from disk. This
|
|
|
1648 |
command is useful if you've run the program too far during a debugging
|
|
|
1649 |
session and need to restart execution at the start of the program. This
|
|
|
1650 |
command is necessary, since you usually can't restart a program simply by
|
|
|
1651 |
starting execution at the beginning of the program. A full reload from disk
|
|
|
1652 |
reinitializes data items that the program expects to contain a particular
|
|
|
1653 |
value when the program is first started. Ctrl-F2 is the hot key for this
|
|
|
1654 |
command.
|
|
|
1655 |
<P>The Run Arguments command lets you set or change the command-line
|
|
|
1656 |
arguments for the program you are debugging. Use this command if you are
|
|
|
1657 |
debugging a program that requires one or more command-line arguments, but
|
|
|
1658 |
you entered either no arguments or erroneous ones with the File/Open
|
|
|
1659 |
command.
|
|
|
1660 |
<P>The Run/Wait for child main menu command lets you specify whether Turbo
|
|
|
1661 |
Debugger waits for the program you are debugging to stop before letting you
|
|
|
1662 |
issue additional commands. If you set it to No, Turbo Debugger lets you
|
|
|
1663 |
issue more commands after you run the program you are debugging. This lets
|
|
|
1664 |
you examine data items in your program while it is executing. However, you
|
|
|
1665 |
can't examine the CPU registers as the program is running - you see their
|
|
|
1666 |
values as of when your program last stopped. Use the Run/Next pending status
|
|
|
1667 |
command to retrieve status information from your program.
|
|
|
1668 |
<P>The Animate command is a self-repeating Trace Into command. Instructions
|
|
|
1669 |
or source lines are executed continuously until a key is pressed. Turbo
|
|
|
1670 |
Debugger's display changes to reflect the current program state between each
|
|
|
1671 |
trace, which allows you to watch the flow of control in your program. You
|
|
|
1672 |
are prompted for the rate at which to step instructions.
|
|
|
1673 |
<P>The Run command executes your program continuously until either a
|
|
|
1674 |
breakpoint is encountered, the program is interrupted with the Interrupt
|
|
|
1675 |
key, or the program terminates. The F9 key is the hot key that executes this
|
|
|
1676 |
command.
|
|
|
1677 |
<P>The Until Return command executes the program being debugged until the
|
|
|
1678 |
current function or procedure returns to its caller. This is useful if you
|
|
|
1679 |
have accidentally issued a Trace Into command when you really wanted to do a
|
|
|
1680 |
Step Over command, or when you have stepped through enough of a function to
|
|
|
1681 |
determine that it is working correctly, and you wish to execute the rest of
|
|
|
1682 |
it without interruption. Alt-F8 is the hot key that executes this command.
|
|
|
1683 |
<P>The Instruction Trace command executes a single machine instruction.
|
|
|
1684 |
After using the command, you are usually left in a CPU window. Use this
|
|
|
1685 |
command when you want to
|
|
|
1686 |
<UL>
|
|
|
1687 |
<LI>trace into an interrupt call in the CPU window.
|
|
|
1688 |
<LI>trace into a function in a module that was not compiled with debug
|
|
|
1689 |
information.
|
|
|
1690 |
<LI>watch each instruction execute that makes up a source line.
|
|
|
1691 |
</LI></UL>Alt-F7 is the hot key for this command.
|
|
|
1692 |
<P>The Back trace command undoes the last instruction or source statement.
|
|
|
1693 |
The processor and memory state are restored to the way they were before the
|
|
|
1694 |
instruction or source line was traced over. The Alt-F4 key is the hot key
|
|
|
1695 |
for this command. The history pane of the Execution history window contains
|
|
|
1696 |
a list of saved steps and allows you to control when stepping and tracing
|
|
|
1697 |
information is saved.
|
|
|
1698 |
<P>The Next pending status command lets you retrieve a status message from a
|
|
|
1699 |
process that is executing asynchronously. If you use the Wait for child
|
|
|
1700 |
command to specify that the program you are debugging can run in the
|
|
|
1701 |
background while Turbo Debugger is running, the status display in the top
|
|
|
1702 |
right corner of the screen changes to say PENDING when a process wants to
|
|
|
1703 |
report something, such as a breakpoint being hit or the process terminating.
|
|
|
1704 |
|
|
|
1705 |
<P></P>
|
|
|
1706 |
<LI>Breakpoints <BR>The Breakpoints menu commands let you set and clear
|
|
|
1707 |
breakpoints.
|
|
|
1708 |
<P>The Toggle command sets or clears a breakpoint at the currently
|
|
|
1709 |
highlighted address in a Module window or CPU window Code pane. Your program
|
|
|
1710 |
stops every time it reaches a line where you have set a breakpoint. You can
|
|
|
1711 |
modify the behavior of the breakpoint by opening a Breakpoint window. This
|
|
|
1712 |
lets you set a pass count or a condition that must be true before the
|
|
|
1713 |
breakpoint happens, and also define what to do when the breakpoint is
|
|
|
1714 |
triggered. The F2 key is the hot key that executes this command. You can
|
|
|
1715 |
also click the mouse in the first two columns.
|
|
|
1716 |
<P>The At command sets a breakpoint at a specific location in your program.
|
|
|
1717 |
You are prompted for the address at which to set the breakpoint and for any
|
|
|
1718 |
options. Alt-F2 is the hot key that executes this command.
|
|
|
1719 |
<P>The Changed Memory Global command allows you to set a breakpoint that
|
|
|
1720 |
occurs when an area of memory changes value. You are prompted for the memory
|
|
|
1721 |
area to watch. Your program executes more slowly if you set any of these
|
|
|
1722 |
breakpoints. If you are running on an 80386 or later processor, make sure
|
|
|
1723 |
you've installed the hardware device driver supplied on the distribution
|
|
|
1724 |
disk; this speeds up global breakpoints. If you have a hardware debugger
|
|
|
1725 |
board, see if the vendor supplies a device driver that lets it work with
|
|
|
1726 |
Turbo Debugger.
|
|
|
1727 |
<P>The Expression True Global command allows you to set a breakpoint that
|
|
|
1728 |
occurs when the value of an expression becomes true. You are prompted for
|
|
|
1729 |
the expression that must become true in order for your program to stop. Your
|
|
|
1730 |
program executes more slowly if you set any of these breakpoints.
|
|
|
1731 |
<P>The Hardware breakpoint command lets you quickly and easily set a general
|
|
|
1732 |
purpose hardware breakpoint. The dialog box lets you set the type of
|
|
|
1733 |
hardware breakpoint, exactly as if you had issued the Hardware options
|
|
|
1734 |
command in the Breakpoint window speed menu.
|
|
|
1735 |
<P>The Delete All command removes all the breakpoints from your program. Use
|
|
|
1736 |
this command when you want to continue debugging your program but no longer
|
|
|
1737 |
want it to stop at any breakpoint locations you've previously set.
|
|
|
1738 |
<P></P>
|
|
|
1739 |
<LI>Data <BR>The Data menu commands allows you to examine variables and
|
|
|
1740 |
memory areas in your program. You can also evaluate Expressions and change
|
|
|
1741 |
their values.
|
|
|
1742 |
<P>The Inspect command opens an Inspector to show the value of a variable or
|
|
|
1743 |
a memory-referencing expression. You are prompted for the variable or
|
|
|
1744 |
memory-referencing expression to inspect. If the cursor was in a Text pane
|
|
|
1745 |
when you issued this command, the prompt is initialized to contain the
|
|
|
1746 |
variable under the cursor, if any. If you have marked an expression using
|
|
|
1747 |
the Ins key, the prompt is initialized to the marked expression.
|
|
|
1748 |
<P>The Evaluate/Modify command evaluates an arbitrary expression. Enter an
|
|
|
1749 |
expression followed by an optional format control string that's separated
|
|
|
1750 |
from the expression with a comma (,). The value appears in the middle pane.
|
|
|
1751 |
You can move to this pane to scroll long value displays or error messages.
|
|
|
1752 |
If the result is changeable, you can change the expression's value by moving
|
|
|
1753 |
to the bottom pane (press the Tab key), typing a new value, and pressing
|
|
|
1754 |
Enter. If the cursor was in a Text pane when you issued this command, the
|
|
|
1755 |
prompt is initialized to contain the variable under the cursor, if any. If
|
|
|
1756 |
you have marked an expression using the Ins key, the prompt is initialized
|
|
|
1757 |
to the marked expression.
|
|
|
1758 |
<P>The Data Add Watch command places an expression or variable on the watch
|
|
|
1759 |
list displayed by the Watches window. If the cursor was in a Text pane when
|
|
|
1760 |
you issue this command, the prompt is initialized to contain the variable
|
|
|
1761 |
under the cursor, if any. If you have marked an expression using the Ins
|
|
|
1762 |
key, the prompt is initialized to the marked expression.
|
|
|
1763 |
<P>The Data Function return command lets you examine the value that is about
|
|
|
1764 |
to be returned by the current function. You can only issue this command just
|
|
|
1765 |
before the function is about to return to the function that called it.
|
|
|
1766 |
<P></P>
|
|
|
1767 |
<LI>Options <BR>The Options menu commands allow you to adjust a number of
|
|
|
1768 |
options that have a global effect on the behavior of Turbo Debugger.
|
|
|
1769 |
<P>The Options Language command lets you specify how Turbo Debugger
|
|
|
1770 |
interprets expressions you type in. You can select from one of the languages
|
|
|
1771 |
that Turbo Debugger supports.
|
|
|
1772 |
<P>The Options Macros command lets you set and clear macros assigned to
|
|
|
1773 |
different keys.
|
|
|
1774 |
<UL>
|
|
|
1775 |
<LI>Create - The Create command lets you assign a new sequence of
|
|
|
1776 |
keystrokes to any key on the keyboard. Alt = is the hot key for this
|
|
|
1777 |
command. You are prompted to press the key you wish to assign a macro to.
|
|
|
1778 |
Then you can enter the keystrokes that make up the macro, which is acted
|
|
|
1779 |
upon just as if you typed them without recording a macro. End the macro
|
|
|
1780 |
definition by pressing either Alt - or the key you are assigning the macro
|
|
|
1781 |
to, or issuing the Options Macros Stop Recording main menu command.
|
|
|
1782 |
<LI>Delete All - The Delete all command deletes all keystroke macros. Use
|
|
|
1783 |
this command when you wish to restore all keys to their original functions
|
|
|
1784 |
and free the macro memory for a new set of keystroke macros.
|
|
|
1785 |
<LI>Remove - The Remove command lets you remove a sequence of keystrokes
|
|
|
1786 |
assigned to a key. This returns the key to its original function. You are
|
|
|
1787 |
prompted to press the key for the macro you wish to delete.
|
|
|
1788 |
<LI>Stop Recording - The Stop Recording command stops keystroke
|
|
|
1789 |
remembering for the macro you're presently recording. If you use this menu
|
|
|
1790 |
command, it will be recorded as part of the macro. Use one of the
|
|
|
1791 |
following single-key stop methods to avoid this: <PRE>* Alt - (hyphen).
|
|
|
1792 |
* Pressing the key that you are assigning the
|
|
|
1793 |
macro to.
|
|
|
1794 |
</PRE>Assigning no keystrokes to a key makes it perform no action. To
|
|
|
1795 |
restore a key to its original function, use the Remove command.
|
|
|
1796 |
</LI></UL>You can use macros to record command sequences that you often
|
|
|
1797 |
repeat, as well as to record commands from the start of a session. This is
|
|
|
1798 |
very useful when you must keep restarting and getting back to a certain
|
|
|
1799 |
place in your program.
|
|
|
1800 |
<P>The Display options command lets you adjust the appearance of Turbo
|
|
|
1801 |
Debugger's display screen.
|
|
|
1802 |
<P>The Options Path for Source command lets you set where Turbo Debugger
|
|
|
1803 |
looks for the source files that make up your program. Source files are
|
|
|
1804 |
searched for first where the compiler found them, then in each directory
|
|
|
1805 |
specified by this command or the -sd command line option, then in the
|
|
|
1806 |
current directory, and finally in the directory that contains the program
|
|
|
1807 |
you are debugging.
|
|
|
1808 |
<P>The Save Options command brings up a dialog that lets you select which
|
|
|
1809 |
part of your current configuration you wish to save to disk and the file
|
|
|
1810 |
name to use.
|
|
|
1811 |
<P>The Restore Options command loads a configuration file from disk. You
|
|
|
1812 |
must have previously saved the configuration file by using the Save options
|
|
|
1813 |
command or the customization program to create the configuration file.
|
|
|
1814 |
Depending on which option of the Save options command you used, the
|
|
|
1815 |
configuration can contain only macros, only window layouts, or an entire
|
|
|
1816 |
configuration.
|
|
|
1817 |
<P></P>
|
|
|
1818 |
<LI>Window <BR>The Window menu commands let you perform certain operations
|
|
|
1819 |
on the windows on screen with the following commands: <PRE> Zoom Size/move Undo Close
|
|
|
1820 |
Next Iconize/restore
|
|
|
1821 |
Next Pane Close User screen
|
|
|
1822 |
</PRE>At the bottom of the list appears a list of all the windows open on
|
|
|
1823 |
the screen. Select one of these to go directly to that window. Use the View
|
|
|
1824 |
menu commands to create new windows. The F5 key zooms the current window and
|
|
|
1825 |
the F6 key takes you to the next window. </LI></UL>
|
|
|
1826 |
<P></P>
|
|
|
1827 |
<LI><B>Modifying data</B> <BR>There are several ways to modify program data:
|
|
|
1828 |
<UL>
|
|
|
1829 |
<LI>Use the Data Evaluate/Modify command and type in a new value for an
|
|
|
1830 |
expression.
|
|
|
1831 |
<LI>Use the Data Evaluate/Modify command and evaluate an expression that has
|
|
|
1832 |
side effects, such as an assignment statement or one that uses the C ++ or
|
|
|
1833 |
-- operators on a pointer variable.
|
|
|
1834 |
<LI>Use the Change command in the speed menu for the Data pane of a CPU
|
|
|
1835 |
window. This is good for examining and modifying data as a raw hex dump.
|
|
|
1836 |
</LI></UL>
|
|
|
1837 |
<P></P>
|
|
|
1838 |
<LI><B>Moving windows</B> <BR>The Size/move command lets you change the size
|
|
|
1839 |
and/or position of the current window. Once you have issued the command, use
|
|
|
1840 |
the cursor keys to move the window and Shift plus the cursor keys to resize
|
|
|
1841 |
it. Pressing the Ctrl-F5 key is the hot key for this command.
|
|
|
1842 |
<P></P>
|
|
|
1843 |
<LI><B>Operator precedence</B> <BR>
|
|
|
1844 |
<P></P>
|
|
|
1845 |
<LI><B>Panes</B> <BR>Panes are the individual display areas that make up each
|
|
|
1846 |
window. Each pane is associated with a speed menu of commands unique to that
|
|
|
1847 |
pane. There are two types of panes: List panes and Text panes. List panes show
|
|
|
1848 |
an alphabetically ordered list of items from which to select. Text panes
|
|
|
1849 |
display the contents of a disk file.
|
|
|
1850 |
<P></P>
|
|
|
1851 |
<LI><B>Pascal constants</B>
|
|
|
1852 |
<LI><B>Pascal expressions</B>
|
|
|
1853 |
<LI><B>Pascal operators</B>
|
|
|
1854 |
<LI><B>Pascal strings</B>
|
|
|
1855 |
<LI><B>Pascal variables</B>
|
|
|
1856 |
<LI><B>Program Execution</B> <BR>The Run Menu command has several options for
|
|
|
1857 |
how to execute your program. Since you use these commands frequently, most are
|
|
|
1858 |
available on function keys: <PRE>F4 Go to cursor Alt-F7 Instruction trace
|
|
|
1859 |
F7 Trace into Animate
|
|
|
1860 |
F8 Step over Alt-F8 Until return
|
|
|
1861 |
F9 Run Alt-F9 Execute to
|
|
|
1862 |
Alt-F4 Back trace
|
|
|
1863 |
</PRE>
|
|
|
1864 |
<P></P>
|
|
|
1865 |
<LI><B>Prompts</B> <BR>Prompts indicate you must supply additional information
|
|
|
1866 |
to process a command. A prompt dialog has an entry field in which you can
|
|
|
1867 |
input text; you can scroll to accommodate long input lines. The dialog title
|
|
|
1868 |
describes what you must enter.
|
|
|
1869 |
<P></P>
|
|
|
1870 |
<LI><B>Scoping</B> <BR>Normally, Turbo Debugger and Turbo Profiler look for a
|
|
|
1871 |
symbol in an expression in the same way that the compiler for the current
|
|
|
1872 |
language would search. For example in C, first it looks in the current
|
|
|
1873 |
function, then in the current module for a static (local) symbol, then for a
|
|
|
1874 |
global symbol. If it doesn't find the symbol using these techniques, it
|
|
|
1875 |
finally searches through all the other modules to try to find a static symbol
|
|
|
1876 |
that matches. This lets you reference static functions in other modules
|
|
|
1877 |
without having to mention the module name explicitly. Turbo Debugger uses a
|
|
|
1878 |
similar approach with the other languages.
|
|
|
1879 |
<P>If you want to force Turbo Debugger or Profiler to look elsewhere for a
|
|
|
1880 |
symbol, you can exert total control over where to look for a symbol name. You
|
|
|
1881 |
can specify a module, a file within a module, and/or a function to search.
|
|
|
1882 |
Where the debugger looks for a variable is known as the "scope" of that
|
|
|
1883 |
variable.
|
|
|
1884 |
<P>Normally you use pound signs (#) to separate the components of the scope.
|
|
|
1885 |
If it is not ambiguous in the current language, you can use dots (.) instead
|
|
|
1886 |
of #, and also omit the initial pound sign or dot.
|
|
|
1887 |
<P>The following syntax describes scope overriding, with brackets []
|
|
|
1888 |
indicating optional items:
|
|
|
1889 |
<P>[#module [#filename]] #linenum [#variablename] <BR>or <BR>[#module
|
|
|
1890 |
[#filename]] [#funcname] #variablename
|
|
|
1891 |
<P>If you do not specify a module or file, the current module and file is
|
|
|
1892 |
assumed. For example, #123 refers to line 123 in the current module.
|
|
|
1893 |
<P>Scope examples: <PRE> #module1#myvar "myvar" accessible from module
|
|
|
1894 |
"module1"
|
|
|
1895 |
|
|
|
1896 |
#myfunc#var1 "var1" accessible from routine
|
|
|
1897 |
"myfunc"
|
|
|
1898 |
|
|
|
1899 |
module2#99 Line 99 in module "module2"
|
|
|
1900 |
|
|
|
1901 |
m1#fil2#fun1 "fun1" accessible from file
|
|
|
1902 |
"fil2" included in module "m1"
|
|
|
1903 |
</PRE>
|
|
|
1904 |
<P></P>
|
|
|
1905 |
<LI><B>Screen updating</B>
|
|
|
1906 |
<LI><B>Speed Menus</B> <BR>Each pane has a speed menu for commands specific to
|
|
|
1907 |
that pane. To access the speed menu, press Alt-F10. To invoke an item in a
|
|
|
1908 |
speed menu quickly, hold down Ctrl and press the hot key letter of the menu
|
|
|
1909 |
item. You can use the TDINST customization utility to set or cancel these
|
|
|
1910 |
control-key hot keys.
|
|
|
1911 |
<P></P>
|
|
|
1912 |
<LI><B>Stack</B> <BR>There are two ways to view the stack:
|
|
|
1913 |
<UL>
|
|
|
1914 |
<LI>A list of active functions and the arguments they are called with. The
|
|
|
1915 |
active function calling list is displayed in a Stack window.
|
|
|
1916 |
<LI>A raw hex dump The hex dump of the stack contents is shown in the Stack
|
|
|
1917 |
pane of a CPU window. </LI></UL>
|
|
|
1918 |
<P></P>
|
|
|
1919 |
<LI><B>Static variables</B> <BR>Static variables are those defined as being
|
|
|
1920 |
accessible only in the module in which they are defined. The C static keyword
|
|
|
1921 |
is used as part of the declaration for the variable. You can view the static
|
|
|
1922 |
variables in a module by creating a Variables window. The static variables
|
|
|
1923 |
appear in the bottom pane of that window.
|
|
|
1924 |
<P></P>
|
|
|
1925 |
<LI><B>Status info</B> <BR>A number of messages can appear either in the
|
|
|
1926 |
information box displayed with the File/Get Info command or when control
|
|
|
1927 |
returns to Turbo Debugger after executing part of your program. See TD Help
|
|
|
1928 |
for full info.
|
|
|
1929 |
<P></P>
|
|
|
1930 |
<LI><B>Technical notes</B>
|
|
|
1931 |
<LI><B>Tracepoints</B> <BR>You use breakpoints to specify something you want
|
|
|
1932 |
done when your program has run to a specific source line number or address.
|
|
|
1933 |
<P>You can set a breakpoint to stop your program at any source line or
|
|
|
1934 |
address. Position the cursor on the desired line and press F2. Press F2 again
|
|
|
1935 |
to clear the breakpoint.
|
|
|
1936 |
<P>You can also set a breakpoint by clicking the mouse in one of the first two
|
|
|
1937 |
columns of the line that you want to set the breakpoint on.
|
|
|
1938 |
<P>Turbo Debugger's breakpoints perform all the same jobs as the breakpoints,
|
|
|
1939 |
watchpoints, and tracepoints of other debuggers.
|
|
|
1940 |
<P>A breakpoint can be instructed to perform one of the following actions: <PRE> Break Stop your program
|
|
|
1941 |
Log Log the value of variables
|
|
|
1942 |
Execute Execute an expression
|
|
|
1943 |
</PRE>You can set a breakpoint to execute on one of the following conditions: <PRE>
|
|
|
1944 |
Always Every time it is encountered
|
|
|
1945 |
Expression true Only when an expression is true
|
|
|
1946 |
Changed memory Only when a memory area changes
|
|
|
1947 |
Hardware When a hardware breakpoint occurs
|
|
|
1948 |
</PRE>Breakpoints can also be qualified by setting a Pass Count that specifies
|
|
|
1949 |
how many times the breakpoint must be passed over before being activated.
|
|
|
1950 |
<P>A breakpoint can also be set at a global address, which means that it
|
|
|
1951 |
occurs on every source line or instruction address. This allows you to watch
|
|
|
1952 |
the value of a variable as each line is executed, or to stop when a variable
|
|
|
1953 |
or area of memory changes value.
|
|
|
1954 |
<P></P>
|
|
|
1955 |
<LI><B>Variable scoping</B>
|
|
|
1956 |
<LI><B>Viewers</B> <BR>The View menu commands open windows that "view" part of
|
|
|
1957 |
the program you are debugging. Use the Another option in this menu to open
|
|
|
1958 |
another instance of a Dump, File, or Module window that you already have
|
|
|
1959 |
displayed on the screen.
|
|
|
1960 |
<P></P>
|
|
|
1961 |
<LI><B>Watchpoints</B> <BR>See Tracepoints.
|
|
|
1962 |
<P></P>
|
|
|
1963 |
<LI><B>Windows</B> <BR>You create windows with the View menu commands. The
|
|
|
1964 |
active window has a double line border and a highlighted title. Each window is
|
|
|
1965 |
divided into one or more panes. Each pane has a Speed Menu for commands
|
|
|
1966 |
specific to that pane.
|
|
|
1967 |
<P></P></LI></UL><A name=OTHER></A>
|
|
|
1968 |
<H2>Other sites with help for BCC 5.5</H2>
|
|
|
1969 |
<P>This section will list other non-Borland web sites that have additional
|
|
|
1970 |
information about Borland's free command line tools.
|
|
|
1971 |
<UL>
|
|
|
1972 |
<LI><A href="http://www.sirma.bg/Jogy/bcc55.html">Archive of Helmut Pharo's
|
|
|
1973 |
Site</A> <BR>This site has a pretty nice document about getting and setting up
|
|
|
1974 |
BCC 5.5. That information isn't much different than what is here, but the site
|
|
|
1975 |
also has a nice tutorial section for building a simple Window's GUI app with
|
|
|
1976 |
BCC 5.5, and some other nice tutorial information. Highly recommended.
|
|
|
1977 |
<BR>This used to be run by Helmut Pharo, but it is no longer directly
|
|
|
1978 |
available. The link is to an archived version. (link updated Feb. 22, 2003)
|
|
|
1979 |
</LI></UL><A name=HELPME></A>
|
|
|
1980 |
<H2>Help Improve VIDE for BCC <FONT size=1><A
|
|
|
1981 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H2>
|
|
|
1982 |
<P>Please note that VIDE will remain primarily focused on the GNU MinGW gcc
|
|
|
1983 |
compiler. However, I do plan to continue support for the free Borland BCC 5.5.
|
|
|
1984 |
Remember that VIDE is GPLed, so the code is available for modification.
|
|
|
1985 |
<P>First, if I've gotten some default behavior wrong, please suggest a
|
|
|
1986 |
reasonable alternative. But remember, I chose the defaults here mainly to
|
|
|
1987 |
simplify typical, simple applications. Advanced users are expected to edit the
|
|
|
1988 |
Project file or makefile to get more options.
|
|
|
1989 |
<P>If you don't like the layout of this document (like tables might be better),
|
|
|
1990 |
chip in and fix it. I'll fold it back into the standard distribution.
|
|
|
1991 |
<P><A name=Disclaimer></A>
|
|
|
1992 |
<H3>Disclaimer <FONT size=1><A
|
|
|
1993 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H3>
|
|
|
1994 |
<P>First, the Borland C++ 5.5 compiler is not the main compiler supported by
|
|
|
1995 |
VIDE (gcc is). However, VIDE has supported BCC long enough now that it is very
|
|
|
1996 |
stable. If you have any problems using VIDE with BCC, please report them back to
|
|
|
1997 |
me.
|
|
|
1998 |
<P>This information was assembled for publicly available sources and is intended
|
|
|
1999 |
merely to help use VIDE with Borland BCC32. There is no guarantee of its
|
|
|
2000 |
accuracy, although it seems to be correct, but may be incomplete.
|
|
|
2001 |
<HR>
|
|
|
2002 |
<A name=warranty></A>
|
|
|
2003 |
<H2>No Warranty <FONT size=1><A
|
|
|
2004 |
href="http://www.objectcentral.com/vide/help/videdoc/bcc32.html#top">top</A></FONT></H2>
|
|
|
2005 |
<P>This program is provided on an "as is" basis, without warranty of any kind.
|
|
|
2006 |
The entire risk as to the quality and performance of the program is borne by
|
|
|
2007 |
you.
|
|
|
2008 |
<P><B>VIDE Reference Manual</B><BR>Copyright © 1999-2000, Bruce E.
|
|
|
2009 |
Wampler<BR>All rights reserved.
|
|
|
2010 |
<P>Bruce E. Wampler, Ph.D.<BR><A
|
|
|
2011 |
href="mailto:bruce@objectcentral.com">bruce@objectcentral.com</A> <BR><A
|
|
|
2012 |
href="http://www.objectcentral.com/">http://www.objectcentral.com/</A><BR></P></BODY></HTML>
|