/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
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html lang="en-us">
- <head>
- <title>JEDI Code Library Experts</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>
- <br>
- <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, Turbo Delphi Professional and newer tools,
- 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\experts\debug\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. The expert behavior can be customized by
- using the "JCL Debug Expert" item at the end
- of the Project menu. This submenu contains three settings to configure the operations that are automatically
- executed each time the projects are compiled/built. Three distinct operations are possible:
- <ol>
- <li>Automatically create .jdbg file from project MAP file;</li>
- <li>Automatically insert JCL Debug info into the executable;</li>
- <li>Automatically delete the MAP file after the conversions are done.</li>
- </ol>
- For each of these operations, the action can be enabled/disabled either on a project basis or for all projects.
- 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\experts\debug\tools 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\repository\ExceptionDialog\StandardDialogs</tt>folder. The dialog
- replaces standard dialog displayed by VCL applications 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'. These dialogs are intended to be added to
- Object Repository.</p>
- <p>The repository expert can customize these standard exception dialogs by enabling additional features
- and by helping their creation by a step by step wizard. The dialogs can be created for any Delphi/C++Builder
- applications by invoking the File/New... menu.</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>Configure "Project" | "JCL Debug expert" to your needs
- </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>