sharplispers / cormanlisp

Corman Lisp
MIT License
570 stars 78 forks source link

sampledll causes an error when client.exe exits #62

Open pber opened 5 years ago

pber commented 5 years ago

client's job works well, but on exit a popup inform me about an error and a CormanLisp_Dump.log is flushed. If it helps: this is the very first lines

The operating system has reported a memory access violation at the address 00000008.

Registers: EAX: 00000000 {Integer: 0} EBX: 4326fba4 {Warning: Unknown or untagged value: 4326fba4} ECX: 00000000 {Integer: 0} EDX: 03070005 {Symbol: NIL} ESI: 0084a078 {Integer: 10940f} EDI: 03070005 {Symbol: NIL} ESP: 4326fb60 EBP: 4326fb68 EIP: 520de44c

pber commented 5 years ago

it is related to GC. it finds "incorrect uvectors".

arbv commented 5 years ago

Well, it is hard to say what is going on without knowing exactly what your application does.

pber commented 5 years ago

:-) sampledll.lisp has a C++ counterpart: dllclient, which uses the 2 ways for loading a DLL. In both cases the error occurs.

I tryied also another way: I saved a new image containing a c-callback. Then call the Initialize of CormanLispServer a try to obtain the callback address through GetCallbackFunctionPointer. In this case I get just nothing :-) but the errors on GC still blocks.

Anyway the same message about bad uvectors can be seen in DbgView just working with the ide. So my issue is not strictly related with external callacks. Not only.

pber commented 5 years ago

I forgot: I compile (the external code wich try to use CCL services) with GCC, not VC.