flre
flre copied to clipboard
Crash on Android
Now I tried to run it on Android (386), but it crashes:
f := tflre.create('^[:A-Z_a-z\UC0-\UD6\UD8-\UF6\UF8-\U2FF\U370-\U37D\U37F-\U1FFF\U200C-\U200D\U2070-\U218F\U2C00-\U2FEF\U3001-\UD7FF\UF900-\UFDCF\UFDF0-\UFFFD\U10000-\UEFFFF-[:]][\U2D.0-9\UB7\U0300-\U036F\U203F-\U2040:A-Z_a-z\UC0-\UD6\UD8-\UF6\UF8-\U2FF\U370-\U37D\U37F-\U1FFF\U200C-\U200D\U2070-\U218F\U2C00-\U2FEF\U3001-\UD7FF\UF900-\UFDCF\UFDF0-\UFFFD\U10000-\UEFFFF-[:]]*$', [rfutf8]);
f.utf8find('http503');
->
F/libc ( 1806): Fatal signal 11 (SIGSEGV) at 0x00000238 (code=1), thread 1806 (ibela.videlibri)
I/DEBUG ( 792): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 792): Build fingerprint: 'unknown'
I/DEBUG ( 792): pid: 1806, tid: 1806, name: UNKNOWN >>> de.benibela.videlibri <<<
I/DEBUG ( 792): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000238
I/DEBUG ( 792): eax 00000074 ebx 000c0080 ecx aa57a2ab edx 00000068
I/DEBUG ( 792): esi aac0be6a edi aa57b68c
I/DEBUG ( 792): xcs 00000073 xds 0000007b xes 0000007b xfs 00000000 xss 0000007b
I/DEBUG ( 792): eip aabe4163 ebp bf991468 esp bf9913fc flags 00010286
I/DEBUG ( 792):
I/DEBUG ( 792): backtrace:
I/DEBUG ( 792): #00 pc 0048f163 /data/data/de.benibela.videlibri/lib/liblclapp.so (FLRE$_$TFLREDFA_$__$$_SEARCHMATCHFULL$LONGINT$LONGINT$LONGINT$LONGBOOL$$LONGINT+163)
I/DEBUG ( 792): #01 pc 004a1d41 /data/data/de.benibela.videlibri/lib/liblclapp.so (FLRE$_$TFLRE_$__$$_SEARCHMATCH$crcAC2EA311+417)
I/DEBUG ( 792): #02 pc 004a4324 /data/data/de.benibela.videlibri/lib/liblclapp.so (FLRE$_$TFLRE_$__$$_PTRFIND$POINTER$LONGINT$LONGINT$$LONGINT+340)
I/DEBUG ( 792): #03 pc 004a4b7e /data/data/de.benibela.videlibri/lib/liblclapp.so (FLRE$_$TFLRE_$__$$_UTF8FIND$ANSISTRING$LONGINT$$LONGINT+46)
I/DEBUG ( 792):
I/DEBUG ( 792): stack:
I/DEBUG ( 792): bf9913bc 00000000
I/DEBUG ( 792): bf9913c0 00000000
I/DEBUG ( 792): bf9913c4 00000000
I/DEBUG ( 792): bf9913c8 00000000
I/DEBUG ( 792): bf9913cc 00000000
I/DEBUG ( 792): bf9913d0 00000000
I/DEBUG ( 792): bf9913d4 00000000
I/DEBUG ( 792): bf9913d8 00000000
I/DEBUG ( 792): bf9913dc 00000000
I/DEBUG ( 792): bf9913e0 00000000
I/DEBUG ( 792): bf9913e4 00000000
I/DEBUG ( 792): bf9913e8 00000000
I/DEBUG ( 792): bf9913ec 00000000
I/DEBUG ( 792): bf9913f0 00000000
I/DEBUG ( 792): bf9913f4 00000000
I/DEBUG ( 792): bf9913f8 00000000
I/DEBUG ( 792): #00 bf9913fc 00000007
I/DEBUG ( 792): bf991400 bf991630 [stack]
I/DEBUG ( 792): bf991404 b1692d14
I/DEBUG ( 792): bf991408 bf991468 [stack]
I/DEBUG ( 792): bf99140c bf991420 [stack]
I/DEBUG ( 792): bf991410 7c700021
I/DEBUG ( 792): bf991414 aa57b3b0
I/DEBUG ( 792): bf991418 aa5478d8
I/DEBUG ( 792): bf99141c 00000000
I/DEBUG ( 792): bf991420 7c700021
I/DEBUG ( 792): bf991424 00000000
I/DEBUG ( 792): bf991428 00000000
I/DEBUG ( 792): bf99142c aa5fbf10
I/DEBUG ( 792): bf991430 7c700021
I/DEBUG ( 792): bf991434 aac0be68 /data/data/de.benibela.videlibri/lib/liblclapp.so (.Ld76$strlab+12)
I/DEBUG ( 792): bf991438 aa57a2ac
I/DEBUG ( 792): ........ ........
I/DEBUG ( 792): #01 bf991470 aa57a270
I/DEBUG ( 792): bf991474 00000000
I/DEBUG ( 792): bf991478 00000007
I/DEBUG ( 792): bf99147c bf991490 [stack]
I/DEBUG ( 792): bf991480 ffffffff
I/DEBUG ( 792): bf991484 bf9914bc [stack]
I/DEBUG ( 792): bf991488 00000007
I/DEBUG ( 792): bf99148c 00000000
I/DEBUG ( 792): bf991490 00000008
I/DEBUG ( 792): bf991494 bf991401 [stack]
I/DEBUG ( 792): bf991498 aad64d1c /data/data/de.benibela.videlibri/lib/liblclapp.so
I/DEBUG ( 792): bf99149c aa5fbe90
I/DEBUG ( 792): bf9914a0 bf991538 [stack]
I/DEBUG ( 792): bf9914a4 aa5aba20
I/DEBUG ( 792): bf9914a8 bf991558 [stack]
I/DEBUG ( 792): bf9914ac aabf9324 /data/data/de.benibela.videlibri/lib/liblclapp.so (FLRE$_$TFLRE_$__$$_PTRFIND$POINTER$LONGINT$LONGINT$$LONGINT+340)
I/DEBUG ( 792): #02 bf9914b0 bf991401 [stack]
I/DEBUG ( 792): bf9914b4 00000007
I/DEBUG ( 792): bf9914b8 00000000
I/DEBUG ( 792): bf9914bc 00000001
I/DEBUG ( 792): bf9914c0 7c700021
I/DEBUG ( 792): bf9914c4 b1692d14
I/DEBUG ( 792): bf9914c8 bf991630 [stack]
I/DEBUG ( 792): bf9914cc bf991558 [stack]
I/DEBUG ( 792): bf9914d0 bf9914b0 [stack]
I/DEBUG ( 792): bf9914d4 aabf927e /data/data/de.benibela.videlibri/lib/liblclapp.so (FLRE$_$TFLRE_$__$$_PTRFIND$POINTER$LONGINT$LONGINT$$LONGINT+174)
I/DEBUG ( 792): bf9914d8 bf9914c0 [stack]
I/DEBUG ( 792): bf9914dc bf991504 [stack]
I/DEBUG ( 792): bf9914e0 00000001
I/DEBUG ( 792): bf9914e4 00000000
I/DEBUG ( 792): bf9914e8 00000000
I/DEBUG ( 792): bf9914ec 7c700021
I/DEBUG ( 792): ........ ........
D/Zygote ( 795): Process 1806 terminated by signal (11)
When I disable the assembler code there, it blows up in SearchMatchFullReversed:
F/libc ( 1556): Fatal signal 11 (SIGSEGV) at 0x00000400 (code=1), thread 1556 (ibela.videlibri)
I/DEBUG ( 792): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 792): Build fingerprint: 'unknown'
I/DEBUG ( 792): pid: 1556, tid: 1556, name: UNKNOWN >>> de.benibela.videlibri <<<
I/DEBUG ( 792): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000400
I/DEBUG ( 792): eax 00000100 ebx bf9cf470 ecx 00000006 edx 00000000
I/DEBUG ( 792): esi bf9cf670 edi 00000006
I/DEBUG ( 792): xcs 00000073 xds 0000007b xes 0000007b xfs 00000000 xss 0000007b
I/DEBUG ( 792): eip aad2050b ebp b17ced14 esp bf9cf46c flags 00010286
I/DEBUG ( 792):
I/DEBUG ( 792): backtrace:
I/DEBUG ( 792): #00 pc 0048f50b /data/data/de.benibela.videlibri/lib/liblclapp.so (FLRE$_$TFLREDFA_$__$$_SEARCHMATCHFULLREVERSED$LONGINT$LONGINT$LONGINT$LONGBOOL$$LONGINT+363)
I/DEBUG ( 792): #01 pc 002acad0 /dev/ashmem/dalvik-LinearAlloc (deleted)
I/DEBUG ( 792): #02 pc 10f80002 <unknown>
I/DEBUG ( 792):
I/DEBUG ( 792): stack:
I/DEBUG ( 792): bf9cf42c 00000000
I/DEBUG ( 792): bf9cf430 00000000
I/DEBUG ( 792): bf9cf434 00000000
I/DEBUG ( 792): bf9cf438 00000000
I/DEBUG ( 792): bf9cf43c 00000000
I/DEBUG ( 792): bf9cf440 00000000
I/DEBUG ( 792): bf9cf444 00000000
I/DEBUG ( 792): bf9cf448 00000000
I/DEBUG ( 792): bf9cf44c 00000000
I/DEBUG ( 792): bf9cf450 00000000
I/DEBUG ( 792): bf9cf454 00000000
I/DEBUG ( 792): bf9cf458 00000000
I/DEBUG ( 792): bf9cf45c 00000000
I/DEBUG ( 792): bf9cf460 00000000
I/DEBUG ( 792): bf9cf464 00000000
I/DEBUG ( 792): bf9cf468 00000000
I/DEBUG ( 792): #00 bf9cf46c 00000000
I/DEBUG ( 792): ........ ........
I/DEBUG ( 792): #01 b17ced1c aaf82588 /data/dalvik-cache/data@[email protected]@classes.dex
I/DEBUG ( 792): ........ ........
I/DEBUG ( 792): #02 aafb3e94 00020033
I/DEBUG ( 792): aafb3e98 0115000c
I/DEBUG ( 792): aafb3e9c 20f87f0c
I/DEBUG ( 792): aafb3ea0 00100029
I/DEBUG ( 792): aafb3ea4 0069000c
I/DEBUG ( 792): aafb3ea8 00711019
I/DEBUG ( 792): aafb3eac 000020c9
I/DEBUG ( 792): aafb3eb0 0069000c
I/DEBUG ( 792): aafb3eb4 0022100c
I/DEBUG ( 792): aafb3eb8 20700437
I/DEBUG ( 792): aafb3ebc 002022cc
I/DEBUG ( 792): aafb3ec0 100d0069
I/DEBUG ( 792): aafb3ec4 04390022
I/DEBUG ( 792): aafb3ec8 22d02070
I/DEBUG ( 792): aafb3ecc 00690020
I/DEBUG ( 792): aafb3ed0 10711011
If I disable it there as well, ... it works ? (currently I am not able to run my tests on Android)
These things are why I do not trust handwritten assembler
Which compiler? FreePascal or the NextGen Android/iOS Compiler? And which version?
fpc 3.1.1 (I think I compiled it on Apr 5 2015)
It still happens with new fpc (and disabling the assembly blocks fixes ti)
05-09 15:55:54.897 4119 4119 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x238 in tid 4119 (videlibri.debug), pid 4119 (videlibri.debug)
05-09 15:55:54.929 4149 4149 I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
05-09 15:55:54.929 1698 1698 I /system/bin/tombstoned: received crash request for pid 4119
05-09 15:55:54.929 4149 4149 I crash_dump32: performing dump of process 4119 (target tid = 4119)
05-09 15:55:54.934 4149 4149 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-09 15:55:54.935 4149 4149 F DEBUG : Build fingerprint: 'Android/sdk_phone_x86/generic_x86:9/PSR1.180720.012/4923214:userdebug/test-keys'
05-09 15:55:54.935 4149 4149 F DEBUG : Revision: '0'
05-09 15:55:54.935 4149 4149 F DEBUG : ABI: 'x86'
05-09 15:55:54.935 4149 4149 F DEBUG : pid: 4119, tid: 4119, name: videlibri.debug >>> de.benibela.videlibri.debug <<<
05-09 15:55:54.935 4149 4149 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x238
05-09 15:55:54.935 4149 4149 F DEBUG : Cause: null pointer dereference
05-09 15:55:54.935 4149 4149 F DEBUG : eax 00000074 ebx 000c0080 ecx ed76a37b edx 00000068
05-09 15:55:54.935 4149 4149 F DEBUG : edi ed76b31c esi f0a06fae
05-09 15:55:54.935 4149 4149 F DEBUG : ebp ffc39448 esp ffc393ec eip d6287ae5
05-09 15:55:54.935 4149 4149 F DEBUG :
05-09 15:55:54.935 4149 4149 F DEBUG : backtrace:
05-09 15:55:54.935 4149 4149 F DEBUG : #00 pc 00246ae5 /data/app/de.benibela.videlibri.debug-7ikjt3N9FpCsFhl2UrBnAw==/lib/x86/liblclapp.so
05-09 15:55:54.982 1842 1850 W SurfaceFlinger: Attempting to set client state on removed layer: Surface(name=AppWindowToken{cb244b2 token=Token{47e26bd ActivityRecord{4616e14 u0 de.benibela.videlibri.debug/de.benibela.videlibri.activities.LendingList t64}}})/@0xcbc9ef1 - animation-leash#0
Android has stopped giving useful stacktraces.