On 11-Sep-07, at 8:09 PM, Peter K. Stys wrote:

> On 9/11/07, Theodore H. Smith <[EMAIL PROTECTED]> wrote:
>>
>> On 12 Sep 2007, at 00:27, Peter K. Stys wrote:
>>
>>> FINALLY!!!  You'd think this would be documented front and center.
>>> Where do I get the Plugin Debugging.txt doc (I don't subscribe to  
>>> the
>>> beta list).
>>
>> Chris posted it to the list. :)
>>
>
> OK, I must be dense: which list? this list?  where is it? Search for
> "Debugging.txt" on this list turns up nothing.

Plugin Debugging
by Aaron Ballman ([EMAIL PROTECTED])
6/21/2007

REALbasic 2007r4 has two new debugging features designed to support  
plugin developers. The development tools used to write plugins need a  
way to interface with REALbasic to be able to run plugins under their  
source-level debuggers.  Generally, they do this by building a shared  
library into a certain location, and then launching an executable (of  
the user's choice) which is responsible for loading the shared  
library.  In previous versions of REALbasic, there was no simple way  
to debug plugins because the RB compiler would embed the plugin code  
into its output instead of using the original plugin file on disk.   
REALbasic 2007r4 now allows you to specify "debugging" plugins, so  
that RB's compiler links its executables against the original file  
instead of copying the plugin code into the output app.

This feature set is designed to cover two use cases: debugging plugin  
code, and debugging plugin code while debugging REALbasic code.

You specify a debugging plugin by placing the plugin file into a  
special directory next to the IDE called "Debug Plugins." The  
REALbasic IDE loads any plugins in this directory and makes them  
accessible as if they were regular plugins. When compiling an  
application which uses one of these plugins, the resulting executable  
contains absolute path or alias information so that the application  
can load the plugin when it is launched.

Specific instructions about development environment setup are beyond  
the scope of this document, but the general approach is that you  
would place the plugin to be debugged into the Debug Plugins  
directory and launch the IDE.  Create a test application which  
utilizes the plugin and build it. Then, in your plugin development  
environment, designate that the shared library should be built into  
the Debug Plugins directory, and that the newly created REALbasic  
executable should be launched after the shared library has been built.

The second use for this feature is to debug a plugin at the same time  
as debugging the REALbasic code using the plugin.  If the IDE finds a  
Debug Plugins directory in the proper location, then the Project menu  
will contain a new "Run Paused" menu item.  Selecting this item will  
build a debug version of the project and start up the debugger, but  
will not launch the debug executable. This allows you to debug the  
REALbasic project, but have an external entity be responsible for  
launching the executable.  Frequently, this will be the plugin  
development environment.

Caveats:
1) Only "native" plugins can be debugging plugins.  Don't put RBX  
files into the Debug Plugins folder as this is not supported  
functionality.  Instead, put the native shared library (dll, dylib,  
so, etc) into the Debug Plugins directory.  Cross-compiling is not  
supported.

2) Watch out for duplicate plugins.  This can happen when you have  
the same plugins in both the Plugins and Debug Plugins folder.  The  
IDE does not attempt to warn you of this situation, and it can result  
in hard-to-diagnose compile errors.

3) Be certain to remove any files from your Debug Plugins folder when  
making release builds of applications.  Failing to do so will mean  
that the released application will not launch anywhere but the  
original development machine.

4) Note that a project does not need to use a plugin in the Debug  
Plugins folder in order to get the Run Paused command.  The presence  
of the folder determines whether the menu item will appear or not.

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to