PageRenderTime 20ms CodeModel.GetById 3ms app.highlight 10ms RepoModel.GetById 0ms app.codeStats 0ms

/jcl/docs/Experts.html

https://github.com/the-Arioch/jcl
HTML | 163 lines | 161 code | 2 blank | 0 comment | 0 complexity | 686eb19f3a6e63c85be3b8ca8fa54f31 MD5 | raw file
Possible License(s): BSD-3-Clause
  1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2<html lang="en-us">
  3<head>
  4  <title>JEDI Code Library Experts</title>
  5  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  6  <link rel="stylesheet" type="text/css" href="styles/default.css">
  7  <meta content="Project JEDI" name="author">
  8</head>
  9
 10<body>
 11<hr><br>
 12<h1>JEDI Code Library</h1>
 13<br>
 14<hr><br>
 15<h3>Content of this file</h3>
 16<ul>
 17  <li><a href="#about">About experts</a></li>
 18  <li><a href="#debug">Debug Extension for JclDebug unit</a></li>
 19  <li><a href="#version">Version control expert</a></li>
 20  <li><a href="#xmm">XMM debug window</a></li>
 21  <li><a href="#favorites">Favorite combobox in Open/Save dialogs</a></li>
 22</ul>
 23<hr><br>
 24<h3><a name="about">About experts</a></h3>
 25<p>For Delphi 5, Delphi 6, Delphi 7, C++Builder 5 and C++Builder 6, experts can
 26be installed as design time packages or dll experts. For C#Builder 1 and Delphi 8,
 27experts are installed as dll experts (those products don't load design time
 28packages). For Delphi 2005, Borland Developer Studio 2006, Turbo Delphi Professional and newer tools,
 29experts are installed as design time packages.</p>
 30<h3><a name="debug">Debug Extension for JclDebug unit</a></h3>
 31<p>The <tt>experts\debug </tt>folder contains an IDE expert which
 32assists to insert JCL Debug information into executable files. This can be 
 33useful when use source location routines from JclDebug unit. These routines 
 34need some kind of special information to be able provide source location for 
 35given address in the process. Currently there are four options to get it work:</p>
 36<ol>
 37  <li>Generate and deploy MAP file with your executable file. The file
 38is generated by the linker. It needs to be set in Project|Options
 39dialog -&gt; Linker page, Detailed checkbox.</li>
 40  <li>Generate and deploy JDBG file file with your executable file.
 41This is binary file based on MAP file but its size is typically about
 4212% of original MAP file. You can generate it by MapToJdbg tool in <tt>jcl\experts\debug\tools</tt>
 43folder. The advantage over MAP file is smaller size and better security
 44of the file content because it is not a plain text file and it also
 45contains a checksum. The IDE expert can automatically create this file
 46when the project is compiled (see below).</li>
 47  <li>Insert JCL Debug info into executable file. The
 48size of added data is similar to JDBG file but it will be inserted
 49directly into the executable file. This is probably best option because
 50it combines small size of included data and no requirement of deploying
 51additional files. The IDE expert can automatically insert these informations
 52when the project is compiled (see below).</li>
 53  <li>Generate Borland TD32 debug symbols. These symbols are stored
 54directly in the executable file but usually adds several megabytes so
 55the file is very large. The advantage is you don't have to deploy any
 56other file and it is easy to generate it by checking Include TD32 debug
 57info in Linker option page.</li>
 58</ol>
 59<p>
 60The IDE expert will add new item to IDE Project menu. The expert behavior can be customized by
 61using the "JCL Debug Expert" item at the end 
 62of the Project menu. This submenu contains three settings to configure the operations that are automatically
 63executed each time the projects are compiled/built. Three distinct operations are possible:
 64<ol>
 65  <li>Automatically create .jdbg file from project MAP file;</li>
 66  <li>Automatically insert JCL Debug info into the executable;</li>
 67  <li>Automatically delete the MAP file after the conversions are done.</li>
 68</ol>
 69For each of these operations, the action can be enabled/disabled either on a project basis or for all projects.
 70The expert outputs a
 71message in the IDE message view to display details about the data being generated.</p>
 72<p>
 73You can generate those debug data for packages and libraries as well 
 74using the expert. Each executable file in the project can use different option
 75from those listed above. It is not necessary to generate any debug data for 
 76Borland runtime packages because the source location code can use names of exported 
 77functions to get procedure or method name. To get line number information for 
 78Borland RTL and VCL/CLX units you have to check Use Debug DCUs checkbox in 
 79Project|Options dialog -&gt; Compiler tab. Unfortunately, it is not 
 80possible to get line number information for Borland runtime packages 
 81because Borland does not provide detailed MAP files for them so you get 
 82procedure or method name only.</p>
 83<p>In case you have more than one data source for an executable file by 
 84an accident the best one is chosen in following order:</p>
 85<ol>
 86  <li>JCL Debug data in the executable file</li>
 87  <li>JDBG file</li>
 88  <li>Borland TD32 symbols</li>
 89  <li>MAP file</li>
 90  <li>DBG and PDB debug informations (for system DLLs)</li>
 91  <li>Library or Borland package export tables</li>
 92</ol>
 93<p>It is also possible to create JCL debug data programmatically from a MAP file
 94by using MakeJclDbg command line tool in jcl\experts\debug\tools folder.
 95This utility can either export data as a separate .jdbg file or insert them in the
 96executable. You can study included makefiles which uses this tool for building
 97delphitools examples.</p>
 98<p>To help using JclDebug exceptional stack tracking in application
 99simple dialog is provided in <tt>jcl\experts\repository\ExceptionDialog\StandardDialogs</tt>folder. The dialog
100replaces standard dialog displayed by VCL applications when an unhandled
101exception occurs. It has additional Detailed button showing the stack, list of 
102loaded modules and other system information. By adding the dialog to the 
103application exceptional stack tracking code is automatically initialized so you 
104don't have to care about it. You can also turn on logging to text file by setting 
105the Tag property of the dialog to '1'. These dialogs are intended to be added to 
106Object Repository.</p>
107<p>The repository expert can customize these standard exception dialogs by enabling additional features
108and by helping their creation by a step by step wizard. The dialogs can be created for any Delphi/C++Builder
109applications by invoking the File/New... menu.</p>
110<p><b>Short description of getting the JclDebug functionality in your 
111project:</b></p>
112<ol>
113  <li>Close all running instances of Delphi
114</li>
115  <li>Install JCL and IDE experts by the JCL Installer
116</li>
117  <li>Run Delphi IDE and open your project
118</li>
119  <li>Remove any TApplication.OnException handlers from your project(if any).
120</li>
121  <li>Add new Exception Dialog by selecting File | New | Other ... | 
122Delphi Projects | Delphi Files, Select 'JCL Exception Dialog for XXX' (where XXX is
123either Delphi or C++Builder depending on your project). A wizard will appear to
124configure the options for this dialog.
125</li>
126  <li>Configure "Project" | "JCL Debug expert" to your needs
127</li>
128  <li>Do Project | Build</li>
129</ol>
130<hr><br>
131<h3><a name="version">Version control expert</a></h3>
132<p>A new expert integrating version control systems in the IDE was added.
133It provides an integration of TortoiseCVS and TortoiseSVN inside the IDE, items
134are added in the IDE menu and buttons can be placed in IDE toolbars via the
135customize dialog, see below.</p>
136<p>A dialog-box provides configuration options for JCL experts in the Tools menu.</p>
137<p>It wraps <a href="http://tortoisecvs.sourceforge.net/">TortoiseCVS</a>&nbsp;
138and&nbsp;<a href="http://tortoisesvn.sourceforge.net/">TortoiseSVN</a>&nbsp;commands in
139actions that can be placed on IDE toolbars and in IDE menu.</p>
140<p>This expert requires <a href="http://tortoisecvs.sourceforge.net/">TortoiseCVS</a>&nbsp;
141or/and&nbsp;<a href="http://tortoisesvn.sourceforge.net/">TortoiseSVN</a>&nbsp;installed on the
142system to properly work. Please refer to these products documentations for help
143about using version control systems.</p>
144<p>The structure of the "JCL Version" menu can be customized in the JCL options
145dialog (in the "Tools" menu).</p>
146<hr><br>
147<h3><a name="xmm">XMM debug window</a></h3>
148<p>This dialog provides enhancement to the debugger of Delphi and C++Builder regarding
149XMM registers. These registers were introduced in SSE instructions (and are still
150used in SSE2, SSE3 and SSSE3 instructions). This dialog can be displayed by clicking
151on menu View | Debug Windows | SIMD (keyboard shortcut Ctrl+Alt+D).
152It is divided in to panes following the style of the FPU window: the left pane
153displays content of registers and the right pane displays MXCSR flags. The format
154of the registers can be modified from the context. All registers and flags can be
155modified and changes will be applied to the debugged process.</p>
156<hr><br>
157<h3><a name="favorites">Favorite combobox in Open/Save dialogs</a></h3>
158<p>This expert modifies the IDE Open/Save dialogs and add a combobox to store your
159favorite directories. Items can be added and deleted using the button at the right
160of the combobox.</p>
161</body>
162</html>
163