On 11-Sep-07, at 8:09 PM, Peter K. Stys wrote:
> On 9/11/07, Theodore H. Smith <delete at elfdata dot com> 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 (aaron at realsoftware dot com)
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>
|