on 9/11/07 7:55 AM, Theodore H. Smith at [EMAIL PROTECTED] wrote:

> Can someone email me, or email the list directly if you aren't
> worried that RS will take actions against you, the plugin debugging
> text file that supposedly beta people have but release people don't?
> 
> I think it's really ridiculous that RS can release a release version
> of RB with a feature that is only documented for beta testers.
> 
> I assume it's just an oversight though, so they won't mind you fixing
> the oversight by emailing the Documentation to me ;)

Here you go.

Chris

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