Sorry, I wasn't logged in when posting so it came up as guest. This is my account.
I have copied bits of the sample code for licensing and it all seems to work well in 32 bits. I'm now trying the same in 64 bits and I'm getting the crash report below.
I don't believe this is a problem with LimeLM, it's probably the fault of the C++ compiler in use. I'd like to understand what it might be doing in TA_SetTrialCallback that is 'privileged' so I can point the compiler developer in the right direction. I've run it as 'admin' to no avail.
FYI, the compiler is bundled with a Fortran compiler and there are no other possible workarounds as nothing else produces 64 bit object code that can be consumed by the Fortran linker. It's not ideal, but it's what I have to work with.
Thanks in advance for any hints you can provide.
--- Crash report.Attempt to execute privileged instruction (c0000096) at address 7ffeb2fec83e
Within file TURBOACTIVATE.DLLIn TA_SetTrialCallback at address 1E5EIn TA_IsGenuineEx at address 109Within file LicenceCheck.exein ShowInfo(int) at address 87in main at address 2e2
RAX = 00000000564d5868 RBX = 0000000000000000 RCX = 0000000000000014 RDX = 00000000025c5658RBP = 000000000240ec00 RSI = 000000000260b198 RDI = 0000000002631c78 RSP = 000000000240eac8R8 = 000000000263d520 R9 = 0000000000000002 R10 = 000000000261dd80 R11 = 000000000240ead0R12 = 0000000000000030 R13 = 0000000000000004 R14 = 0000000000000000 R15 = 0000000000000001
7ffeb2fec83e) db ed,c3,48,89,5c
Sorry, I wasn't logged in when posting so it came up as guest. This is my account.
You gave some information, but not enough to reproduce or give useful help: https://wyday.com/limelm/help/faq/#useful-reports
First, before doing anything else, use the latest version. I'm not seeing a version number, so I'm assuming you're using an older version. Get the latest version here: https://wyday.com/limelm/api/
Are you using the static version or dynamic? What OS version are you on?
Lastly, are you running in a debugger or not?
Sorry for being so vague, I was thinking you'd say something along the lines of 'we try to execute a specific instruction in there to detect a VM' and that the specifics of the setup didn't matter. Obviously not, apologies again.
I don't think this is LimeLM, I was just seeing if there was a hint.
Anyway, details. Yes, it is the latest version downloaded at the weekend. Using the DLL version under Win 10 and not running under a debugger or a debug build.
I'll do some more digging, it may simply be that the int size is not correct for 64 bits (this is a very awkward compiler), I assumed it was but I doubt it now. I have a suspicion now that it might be a corrupt pointer / structure / stack.
>> " 'we try to execute a specific instruction in there to detect a VM' and that the specifics of the setup didn't matter."
That might be it. And combined with the fact that you're running in a debugger to "catch all exceptions" (even ones we explicitly handle). Delphi has configuration options to disable this broken functionality: https://wyday.com/limelm/help/using-turboactivate-with-delphi/#privileged-instruction
We have no experience with Fortran compilers / debuggers, but they likely have a similar option.