161 lines
8.6 KiB
HTML
161 lines
8.6 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html lang="en-us">
|
|
<head>
|
|
<title>Jedi Code Library Release 1.100</title>
|
|
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
|
|
<link rel="stylesheet" type="text/css" href="styles/default.css">
|
|
<meta content="Project JEDI" name="author">
|
|
</head>
|
|
|
|
<body>
|
|
<hr><br>
|
|
<h1>Jedi Code Library</h1>
|
|
<p>Release 1.100<br>
|
|
Build 2646<br>
|
|
30-May-2007</p>
|
|
<hr><br>
|
|
<h3>Content of this file</h3>
|
|
<ul>
|
|
<li><a href="#about">About experts</a></li>
|
|
<li><a href="#debug">Debug Extension for JclDebug unit</a></li>
|
|
<li><a href="#version">Version control expert</a></li>
|
|
<li><a href="#xmm">XMM debug window</a></li>
|
|
<li><a href="#favorites">Favorite combobox in Open/Save dialogs</a></li>
|
|
</ul>
|
|
<hr><br>
|
|
<h3><a name="about">About experts</a></h3>
|
|
<p>For Delphi 5, Delphi 6, Delphi 7, C++Builder 5 and C++Builder 6, experts can
|
|
be installed as design time packages or dll experts. For C#Builder 1 and Delphi 8,
|
|
experts are installed as dll experts (those products don't load design time
|
|
packages). For Delphi 2005, Borland Developer Studio 2006 and Turbo Delphi Professional,
|
|
experts are installed as design time packages.</p>
|
|
<h3><a name="debug">Debug Extension for JclDebug unit</a></h3>
|
|
<p>The <tt>experts\debug </tt>folder contains an IDE expert which
|
|
assists to insert JCL Debug information into executable files. This can be
|
|
useful when use source location routines from JclDebug unit. These routines
|
|
need some kind of special information to be able provide source location for
|
|
given address in the process. Currently there are four options to get it work:</p>
|
|
<ol>
|
|
<li>Generate and deploy MAP file with your executable file. The file
|
|
is generated by the linker. It needs to be set in Project|Options
|
|
dialog -> Linker page, Detailed checkbox.</li>
|
|
<li>Generate and deploy JDBG file file with your executable file.
|
|
This is binary file based on MAP file but its size is typically about
|
|
12% of original MAP file. You can generate it by MapToJdbg tool in <tt>jcl\examples\windows\tools</tt>
|
|
folder. The advantage over MAP file is smaller size and better security
|
|
of the file content because it is not a plain text file and it also
|
|
contains a checksum. The IDE expert can automatically create this file
|
|
when the project is compiled (see below).</li>
|
|
<li>Insert JCL Debug info into executable file. The
|
|
size of added data is similar to JDBG file but it will be inserted
|
|
directly into the executable file. This is probably best option because
|
|
it combines small size of included data and no requirement of deploying
|
|
additional files. The IDE expert can automatically insert these informations
|
|
when the project is compiled (see below).</li>
|
|
<li>Generate Borland TD32 debug symbols. These symbols are stored
|
|
directly in the executable file but usually adds several megabytes so
|
|
the file is very large. The advantage is you don't have to deploy any
|
|
other file and it is easy to generate it by checking Include TD32 debug
|
|
info in Linker option page.</li>
|
|
</ol>
|
|
<p>
|
|
The IDE expert will add new item to IDE Project menu. For
|
|
Delphi 5, 6 and 7 it adds 'Insert JCL Debug data' check item at the end
|
|
of the Project menu. When the item is checked, everytime the project is
|
|
compiled by one of following commands: Compile, Build, Compile All Projects,
|
|
Build All Projects or Run necessary JCL debug data are automatically created
|
|
from the detailled MAP file. The behavior of this conversion can be customized in
|
|
the JCL options dialog (in the Tools menu of the IDE): the debug informations can
|
|
be exported as .jdbg files or inserted in the binary file. The expert outputs a
|
|
message in the IDE message view to display details about the data being generated.</p>
|
|
<p>
|
|
You can generate those debug data for packages and libraries as well
|
|
using the expert. Each executable file in the project can use different option
|
|
from those listed above. It is not necessary to generate any debug data for
|
|
Borland runtime packages because the source location code can use names of exported
|
|
functions to get procedure or method name. To get line number information for
|
|
Borland RTL and VCL/CLX units you have to check Use Debug DCUs checkbox in
|
|
Project|Options dialog -> Compiler tab. Unfortunately it is not
|
|
possible to get line number information for Borland runtime packages
|
|
because Borland does not provide detailed MAP files for them so you get
|
|
procedure or method name only.</p>
|
|
<p>In case you have more than one data source for an executable file by
|
|
an accident the best one is chosen in following order:</p>
|
|
<ol>
|
|
<li>JCL Debug data in the executable file</li>
|
|
<li>JDBG file</li>
|
|
<li>Borland TD32 symbols</li>
|
|
<li>MAP file</li>
|
|
<li>DBG and PDB debug informations (for system DLLs)</li>
|
|
<li>Library or Borland package export tables</li>
|
|
</ol>
|
|
<p>It is also possible to create JCL debug data programmatically from a MAP file
|
|
by using MakeJclDbg command line tool in jcl\examples\windows\delphitools folder.
|
|
This utility can either export data as a separate .jdbg file or insert them in the
|
|
executable. You can study included makefiles which uses this tool for building
|
|
delphitools examples.</p>
|
|
<p>To help using JclDebug exceptional stack tracking in application
|
|
simple dialog is provided in <tt>jcl\experts\debug\dialog</tt>folder. The dialog
|
|
replaces standard dialog displayed by VCL or CLX application when an unhandled
|
|
exception occurs. It has additional Detailed button showing the stack, list of
|
|
loaded modules and other system information. By adding the dialog to the
|
|
application exceptional stack tracking code is automatically initialized so you
|
|
don't have to care about it. You can also turn on logging to text file by setting
|
|
the Tag property of the dialog to '1'. There is also version for CLX
|
|
(ClxExceptDlg) but it works on Windows only. These dialogs are intended to be added to
|
|
Object Repository.</p>
|
|
<p><b>Short description of getting the JclDebug functionality in your
|
|
project:</b></p>
|
|
<ol>
|
|
<li>Close all running instances of Delphi
|
|
</li>
|
|
<li>Install JCL and IDE experts by the JCL Installer
|
|
</li>
|
|
<li>Run Delphi IDE and open your project
|
|
</li>
|
|
<li>Remove any TApplication.OnException handlers from your project(if any).
|
|
</li>
|
|
<li>Add new Exception Dialog by selecting File | New | Other ... |
|
|
Delphi Projects | Delphi Files, Select 'JCL Exception Dialog for XXX' (where XXX is
|
|
either Delphi or C++Builder depending on your project). A wizard will appear to
|
|
configure the options for this dialog.
|
|
</li>
|
|
<li>Check "Project" | "Insert JCL Debug data" menu item
|
|
</li>
|
|
<li>Do Project | Build</li>
|
|
</ol>
|
|
<hr><br>
|
|
<h3><a name="version">Version control expert</a></h3>
|
|
<p>A new expert integrating version control systems in the IDE was added.
|
|
It provides an integration of TortoiseCVS and TortoiseSVN inside the IDE, items
|
|
are added in the IDE menu and buttons can be placed in IDE toolbars via the
|
|
customize dialog, see below.</p>
|
|
<p>A dialog-box provides configuration options for JCL experts in the Tools menu.</p>
|
|
<p>It wraps <a href="http://tortoisecvs.sourceforge.net/">TortoiseCVS</a>
|
|
and <a href="http://tortoisesvn.sourceforge.net/">TortoiseSVN</a> commands in
|
|
actions that can be placed on IDE toolbars and in IDE menu.</p>
|
|
<p>This expert requires <a href="http://tortoisecvs.sourceforge.net/">TortoiseCVS</a>
|
|
or/and <a href="http://tortoisesvn.sourceforge.net/">TortoiseSVN</a> installed on the
|
|
system to properly work. Please refer to these products documentations for help
|
|
about using version control systems.</p>
|
|
<p>The structure of the "Jcl Version" menu can be customized in the JCL options
|
|
dialog (in the "Tools" menu).</p>
|
|
<hr><br>
|
|
<h3><a name="xmm">XMM debug window</a></h3>
|
|
<p>This dialog provides enhancement to the debugger of Delphi and C++Builder regarding
|
|
XMM registers. These registers were introduced in SSE instructions (and are still
|
|
used in SSE2, SSE3 and SSSE3 instructions). This dialog can be displayed by clicking
|
|
on menu View | Debug Windows | SIMD (keyboard shortcut Ctrl+Alt+D).
|
|
It is divided in to panes following the style of the FPU window: the left pane
|
|
displays content of registers and the right pane displays MXCSR flags. The format
|
|
of the registers can be modified from the context. All registers and flags can be
|
|
modified and changes will be applied to the debugged process.</p>
|
|
<hr><br>
|
|
<h3><a name="favorites">Favorite combobox in Open/Save dialogs</a></h3>
|
|
<p>This expert modifies the IDE Open/Save dialogs and add a combobox to store your
|
|
favorite directories. Items can be added and deleted using the button at the right
|
|
of the combobox.</p>
|
|
</body>
|
|
</html>
|
|
|