[fpc-pascal] Ansistrings under Android

Andrew Haines AndrewD207 at aol.com
Tue Feb 22 19:34:06 CET 2011


On 02/22/11 12:06, de_jean_7777 wrote:
> Now that I have a working fpc crosscompiler for Android, and all the
> code runs ok, I encountered another problem. Namely working with
> ansistrings causes crashes. For example, in a simple test, calling the
> str() routine will cause a crash due to a run-time 216 error (general
> protection fault). I've also noticed that crashes can occur upon routine
> exit, when ansistrings are freed automatically. I thought that using the
> C memory manager (cmem) might help, but there is no difference.
> 
> For some reason, units are not initialized under a android shared
> library, so I call internal_initializeunits() myself in the JNI_OnLoad
> which is called automatically by the JNI, and is called before any other
> routine.
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
> 

Not sure if this is the case for you but I started writing a program for
arm wince device and I had some trouble because of unaligned access to
strings.

So "FooString := BarString" in some instances might cause a AV. But
"FooString := unaligned(BarString)" might work. Although it would
especially happen when a character alone was accessed i.e. PChar(Foo)[x].

It could be the problem.

Regards,

Andrew Haines



More information about the fpc-pascal mailing list