Componentes.Terceros.jcl/official/1.100/docs/Experts.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 -&gt; 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 -&gt; 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>&nbsp;
and&nbsp;<a href="http://tortoisesvn.sourceforge.net/">TortoiseSVN</a>&nbsp;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>&nbsp;
or/and&nbsp;<a href="http://tortoisesvn.sourceforge.net/">TortoiseSVN</a>&nbsp;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>