Island DLL, Debugger can NOT Launch

I have build an Island DLL on Windows, using Oxygen, to be loaded by a C++ host executable.

That C++ host executable is not under my control, and it forbids its process being launched directly by a debugger, for the purpose of software copy protection.

The only way to debug this Island DLL - is via Debugger Attach. But I don’t find anywhere in Island Settings that allows me to Attach to a running process for debugging.

Any advice how can I do this type of debugging?

what IDE? in Water, you can do Debug/Attach, and pick the Island debugger

Marc, I use Visual Studio 2017. I wasn’t able to find the attach option with it

Sorry for the false alarm!
The attach debugging is under VS2017 Debug menu, not in Project Property. I also saw Water has Debug/Attach option.

Everything is fine.

1 Like

FWIW, I don’t believe VS supports attaching using our Island debugger; you’d be using Microsoft’s c/c++ debug engine, if you pick Native.

HI Marc, thank you for your attention - I don’t know but it appears to be working for me that VS2017 support Attach Debug? The following is my test project. But I do find a problem - the DllMain will NEVER be called. Seems something is wrong on ISLAND rtl side that the DllMain is never got hooked.
Host.elements (1.5 KB) Program.pas (804 Bytes) IslandDll.elements (1.6 KB) Program.pas (525 Bytes)

Could be that I’m wrong and we do support this in VS, or it could also be that you’re just using the MS debugger and not noticing because it does what you need (but it won’t have, say, deep knowledge of the structure of Island objects).

I’m afraid thats something Carlo will have to answer on Tuesday, as I’m not familiar with that area. C Could it be a name mangling/export symbol name issue? I;'m not sure what there mechanics here are…

Hi Marc, I’ve spent a whole day playing with my little Island-Window project. At the end of the day, I am now 100% sure that Visual Studio 2017 does indeed support Attach Debugging for Island project. Rest assured! And you are right - I do see that the MS debugger doesn’t have deep knowledge of Island Objects.

I am very satisfied with Island compiler’s native performance, very comparable to C/C++.

I could have used C/C++, but I always like Pascal-style language. Delphi is fine for doing GUI stuff but for computational extensive work, its compiler sucks.

I once even considered Ada (no kidding!) for its native performance - and now, seems no brainer - Oxygene Island is the Champion!

Thank you!!!

1 Like

FTR, I know that VS can attach to any process, natively. My only concern was that it’d probably be using Microsoft’s debug engine not there island one ;).

I am very happy to hear that!

—marc

You are right. :+1:

There is no way for VS to use native Island debugger?

  • I saw VS debugger cannot parse Island String. I need to use VS since the Solution can mix Island project and C++ project, while the VS debugger allows me to jump between the two. That is big convenience for me.

Not a big deal - I guess I can live with that or I can always switch to Water for a more insightful native Island debugging should I need to.

No idea, we probably can support it. I’ll check with the debugger team and have this looked at.

It’ll be either-or anyways. Even kid we added the island debugger for attaching into VS, you’d be using either Island’s (which doesn’t know VC++, I’d expect) or Microsoft’s (which doesn’t know Island).

Unless we’d add support for VC++'s object modern to the Island debugger two, but I’d expect that’d be a tough call…

@mh

You are right. It is a “either-or”.

So a reasonably best solution would still be -

  • if I need a native Island debugger, go to Water.
  • If I need a somewhat “uniform” debugger that works for both C++ and Island at the same time, I’ll stick to VS debugger.
1 Like