FULLDB version 1.3 - Add .OBJ line number information to Turbo Pascal .TPU.
Works with TP 5.5, TP 6.0, or TPW 1.0!
Copyright (c) D.J. Murdoch, 1991
Syntax: FULLDB tpuname[.TPU] [/Oobjpath]
reads the given .TPU file, and attempts to add line number information
from all externally linked .OBJ files.
/Oobjpath: Search objpath for .OBJ files if they're not in the current
This option may be kept in the TPC.CFG file, if that file is on the
PATH. A command line option will override the TPC.CFG value.
Turbo Pascal versions 4.0 and up allow you to link external .OBJ files
written in other languages. Usually these are written in assembler,
since the requirements of the TP linker are very strict.
Unfortunately, all debugging information is lost, which makes it very
hard to get the assembler code right.
FULLDB fixes this for TP 5.5 and 6.0, and TPW 1.0. If you can get your
external assembler/compiler to include standard line number
information in the .OBJ files, FULLDB will copy this into your .TPU
file. This will enable you to single step through your external code
while in the TURBO IDE or in Turbo Debugger.
The following demonstration files are included in this package. I've
already done the first few steps in TP 6.0; skip right to compiling
DEMO.PAS if you're using that version.
Assemble PARSE.ASM with included debug information:
TASM /Zd PARSE
Compile PARSE.PAS, which links in PARSE.OBJ:
TPC /$D+ PARSE.PAS
(Or use the TURBO.EXE IDE to compile it. It's doesn't matter if you
include debug information for the Pascal part of the unit.)
Add the PARSE.OBJ line number information to .TPU:
Now compile the DEMO program:
TPC /V /$D+ DEMO
and you'll be able to single step right into PARSE.ASM, in either
Turbo Debugger or the IDE.
The record in the .TPU file giving the name of the .OBJ file doesn't
include date & time information. If the file it finds isn't the same
one you linked into your .TPU, you're likely to get garbage line
numbers. FULLDB will have no way to check on this.
FULLDB can't read full debug information from the .OBJ file. Only
line numbers are used, so local symbols won't be available to the
debugger. Note that the TP 6.0 IDE has a Registers window available
using the R command.
The lack of local symbols is something I'm working on; if you register
this copy (see below), you may get the full debug version in the mail.
This effort would be greatly sped up if someone could point me to
documentation of the debug info formats in .OBJ files; I already know
how to add it to the .TPU file once I can read it.
1.3 - Added search of TPC.CFG, and demonstration code
1.2 - Added /O option
1.1 - Fixed bug with large .ASM files
1.0 - First version
FULLDB is not public domain. It contains code whose copyright belongs
to D.J. Murdoch, as well as library code from Borland International
and TurboPower Software.
You are free to use FULLDB without charge for one month. If you keep
it beyond that time, you must register it by sending $20 (Canadian or
U.S. dollars) to me at the address below. Mention your version
number; one update will be sent to you when available. I'll also put
a collection of other freeware and shareware programming utilities on
the same disk. (If you like, you can forgo the free update and
request the disk of other utilities immediately.)
You may distribute FULLDB unmodified, together with this documentation
file, provided that you charge no more than distribution costs, and on
no account more than $10 per copy.
Source code to FULLDB is available to registered users at a cost of
$20 (Canadian or U.S. dollars). Send your payment to me at the
address below. You can register it and obtain source code at the same
time for $35 (Canadian or U.S.).
There is no warranty of any kind with this program. But it's
shareware - if it doesn't do what you want, throw it away. I can't
accept responsibility for any damage that bugs in it may cause. If
you find any, please send reports to me (Duncan Murdoch) at one of the
DJ Murdoch at Fidonet node 1:221/177.40
[email protected] on Internet
71631,122 on Compuserve
79 John St. W
Waterloo, Ontario, Canada