Debugging Xcomps

John Boehme john.ics at verizon.net
Fri Apr 24 09:55:25 EDT 2009


Hi Scott,

There are a couple of things that need to be done in order to debug under
visual Studio.

1) Compile the xcomp for debug (you're probably already doing this)

2) Place the xcomp.dll AND xcomp.pdb from the debug directory into the
Studio xcomp directory

3) In Visual Studio, go to the "Project" menu and select the "Settings"
option

4) Select the "Debug" tab

5) Enter the path to the "Executable for debug session" entry field. This
will be the path to Omnis.exe

6) Enter the path in the "Working directory" entry field

7) Enter any program arguments in the "Program arguments" field (usually the
path to the library you want to work with). You can leave this blank and
open the library manually if you want

8) (Optional) Select the "Post-build step" tab. I usually put commands in
the "Post-build command(s)" fields to copy the dll and pdb to the xcomp
folder automatically after compiling

9) Set a breakpoint at the beginning of your OMNISWNDPROC procedure.

10) When you run the project, Studio will be started (with your library
loaded if you entered the library path in the "Program arguments" field) you
should eventually get to the breakpoint.

11) If the xcomp is attempting to be loaded, you should get to this point at
least once. If other things in your xcomp are working, then you will get
here many times. You will want to remove this breakpoint and move it to
other locations to determine your problem.

If you never get to the OMNISWNDPROC, then there are a series of other
things that could be wrong, but based on your statements that Omnis is
crashing, it sounds like the xcomp is at least being loaded.

Good luck. Hope this helps.

John Boehme
----------------------------
Integral Consulting Services
Denton TX
940.597.3046
www.integralservices.biz
----------------------------
  

>> -----Original Message-----
>> From: omnisdev-en-bounces at lists.omnis-dev.com 
>> [mailto:omnisdev-en-bounces at lists.omnis-dev.com] On Behalf 
>> Of Kelly Burgess
>> Sent: Thursday, April 23, 2009 9:23 PM
>> To: OmnisList
>> Subject: Re: Debugging Xcomps
>> 
>> Hi Scott,
>> 
>> I don't use Visual Studio, but XCode is easy to set up for debugging.
>> 
>> 1. add a new 'copy files build phase' to the target, at the 
>> end of the other build phases.  Specify the absolute path of 
>> the Studio xcomp folder - e.g. "/Applications/Omnis Studio 
>> 4.2/Omnis.app/Contents/MacOS/external/" - so that after your 
>> target is successfully built (in your common output folder, e.g. 
>> /Developer/Projects/_OSXDebug), the finished xcomp will then 
>> be copied into the xcomp folder of the Studio you're going 
>> to test it with.
>> 
>> 2. add a new 'custom executable' to the executables node 
>> below the target node, give it a name like 'Studio42', and 
>> specify the absolute path of Studio, e.g. 
>> "/Applications/Omnis Studio 4.2/Omnis.app".  You can have 
>> several of these, allowing you to test with different 
>> versions of Studio.  A menu lets you select the 'active executable' 
>> from among the choices before you build.
>> 
>> Once XCode knows what the executable is, it should allow you 
>> to build and debug.  Note that you need to use the 
>> 'Development' setting for the Active Build Configuration.  
>> You can't debug a 'Deployment' 
>> build, which contains both PPC and Intel code.  The 'Development' 
>> build will only contain one of those two, depending on the 
>> architecture you're using to build the target.  If you're 
>> running your code and not able to hit your assigned 
>> breakpoints, it's usually because you've switched to 
>> building the Deployment config.
>> 
>> A build-and-go should build the development xcomp, copy it 
>> into the Studio xcomp folder, and launch Studio.  From 
>> there, you open your test library and invoke the code that 
>> leads to your breakpoint.
>> 
>> Hope that helps,
>> 
>> Kelly
>> _____________________________________________________________
>> Manage your list subscriptions at http://lists.omnis-dev.com
>> 





More information about the omnisdev-en mailing list