ResEd CLib ZeroPain
David Pitt (3386) 1248 posts |
On a Titanium, using !ResEd 0.59 (26-Aug-18) on :- *FX0 RISC OS 5.27 (31 Jan 2020) *Help SharedCLibrary ==> Help on keyword SharedCLibrary Module is: C Library 6.03 (27 Jul 2019) * ResEd gives a ZeroPain error in the SharedCLibrary on opening a ‘Window object’ that has a ‘Writable field’ with no predefined text but a ‘Length’ set. A minimal test is here. Time: Sat Feb 1 09:54:37 2020 Location: Offset 00013494 in module SharedCLibrary Current Wimp task: ResEd Window Editor Last app to start: Filer_Action R0 = 00000000 R1 = 00000010 R2 = 00000001 R3 = 00000001 R4 = 00000000 R5 = 0004d190 R6 = 00024a88 R7 = 0004d148 R8 = 0004d498 R9 = 0004d1a4 R10 = 00027a0c R11 = 0002853c R12 = 01010101 R13 = 0002851c R14 = 80808080 R15 = fc15e960 DFAR = 00000000 Mode USR32 Flags nZCv if PSR = 60000010 fc15e918 : e59f1008 : LDR R1,&FC15E928 fc15e91c : e51a221c : LDR R2,[R10,#-540] fc15e920 : e0821001 : ADD R1,R2,R1 fc15e924 : ea00001a : B &FC15E994 fc15e928 : fc17edc8 : Undefined instruction fc15e92c : e52de004 : STR R14,[R13,#-4]! fc15e930 : e2803001 : ADD R3,R0,#1 fc15e934 : e3100003 : TST R0,#3 fc15e938 : 0a000004 : BEQ &FC15E950 fc15e93c : e4d01001 : LDRB R1,[R0],#1 fc15e940 : e3510000 : CMP R1,#0 fc15e944 : 0a000010 : BEQ &FC15E98C fc15e948 : e3100003 : TST R0,#3 fc15e94c : 1afffffa : BNE &FC15E93C fc15e950 : e51fc620 : LDR R12,&FC15E338 fc15e954 : e1a0e38c : MOV R14,R12,LSL #7 fc15e958 * e4901004 * LDR R1,[R0],#4 fc15e95c : e041200c : SUB R2,R1,R12 fc15e960 : e1c22001 : BIC R2,R2,R1 fc15e964 : e112000e : TST R2,R14 fc15e968 : 0afffffa : BEQ &FC15E958 fc15e96c : e31100ff : TST R1,#&FF ; ="ˇ" fc15e970 : 02400003 : SUBEQ R0,R0,#3 fc15e974 : 0a000004 : BEQ &FC15E98C fc15e978 : e3110cff : TST R1,#&FF00 fc15e97c : 02400002 : SUBEQ R0,R0,#2 fc15e980 : 0a000001 : BEQ &FC15E98C fc15e984 : e31108ff : TST R1,#&00FF0000 fc15e988 : 02400001 : SUBEQ R0,R0,#1 fc15e98c : e0400003 : SUB R0,R0,R3 fc15e990 : e49df004 : LDR PC,[R13],#4 fc15e994 : e3500006 : CMP R0,#6 R15 = fc15e960 = SharedCLibrary +1349c = strlen +34 R14_usr = 80808080 is nowhere in RAM USR stack: 0002851c : 00017bcc : - R14: 00017bcc (ASM call to fc15e92c) : : | 00017bcc = +fbcc in application memory : : | = gui_load_len_field +34 : : | fc15e92c = SharedCLibrary +13468 : : | = strlen +0 00028520 : 00000000 : - R0 00028524 : 0004d190 : | R1 00028528 : 0004d168 : | R4 0002852c : 00000000 : | R5 00028530 : 00028574 : | R11 00028534 : 00028540 : | R12 00028538 : 0000fe80 : | R14: 0000fe80 : : | = +7e80 in application memory : : | = gadget_load +340 0002853c : 00017ba4 : | APCS function: 00017b9c : : | = +fb9c in application memory : : | = gui_load_len_field +4 00028540 : 00025f64 : | 00028544 : 0004d3bc : | R0 00028548 : 000000a4 : | R1 0002854c : 0004d408 : | R2 00028550 : 0004d210 : | R4 00028554 : 0004d318 : | R5 00028558 : 0004d2e8 : | R6 0002855c : 0004d3bc : | R7 00028560 : 00000000 : | R8 00028564 : 0004d274 : | R9 00028568 : 000285ac : | R11 0002856c : 00028578 : | R12 00028570 : 0000cb84 : | R14: 0000cb84 : : | = +4b84 in application memory : : | = windowedit_load +3e4 00028574 : 0000fb4c : | APCS function: 0000fb44 : : | = +7b44 in application memory : : | = gadget_load +4 00028578 : 00000000 : | 0002857c : 00000000 : | R0 00028580 : 0004d2e8 : | R1 00028584 : 00028628 : | R2 00028588 : 00000000 : | R4 0002858c : 00028628 : | R5 00028590 : 0004d2e8 : | R6 00028594 : 00000000 : | R7 00028598 : 00000000 : | R8 0002859c : 00000002 : | R9 000285a0 : 000285d8 : | R11 000285a4 : 000285b0 : | R12 000285a8 : 0000946c : | R14: 0000946c : : | = +146c in application memory : : | = received_resed_object_load +2bc 000285ac : 0000c7ac : | APCS function: 0000c7a4 : : | = +47a4 in application memory : : | = windowedit_load +4 000285b0 : 00028628 : | R0 000285b4 : 00000012 : | R4 000285b8 : 00028628 : | R5 000285bc : 00000000 : | R6 000285c0 : 00000000 : | R7 000285c4 : 00026f24 : | R8 000285c8 : 00027154 : | R9 000285cc : 000285fc : | R11 000285d0 : 000285dc : | R12 000285d4 : 000085f8 : | R14: 000085f8 : : | = +5f8 in application memory : : | = message +28 000285d8 : 000091bc : | APCS function: 000091b4 : : | = +11b4 in application memory : : | = received_resed_object_load +4 000285dc : 00000001 : | 000285e0 : 00000012 : | R0 000285e4 : 00028628 : | R1 000285e8 : 00000012 : | R4 000285ec : 00028628 : | R5 000285f0 : 00028620 : | R11 000285f4 : 00028600 : | R12 000285f8 : 00008b5c : | R14: 00008b5c : : | = +b5c in application memory : : | = main_dispatch_event +98 000285fc : 000085dc : | APCS function: 000085d4 : : | = +5d4 in application memory : : | = message +4 00028600 : 00000000 : | 00028604 : 00000012 : | R0 00028608 : 00028628 : | R1 0002860c : 00000002 : | R4 00028610 : 00028cac : | R5 00028614 : 00028744 : | R11 00028618 : 00028624 : | R12 0002861c : 00008ca8 : | R14: 00008ca8 : : | = +ca8 in application memory : : | = main +e0 00028620 : 00008ad0 : | APCS function: 00008ac8 : : | = +ac8 in application memory : : | = main_dispatch_event +4 00028624 : 00000012 : | 00028628 : 0000003c : | 0002862c : 3e203980 : | 00028630 : 00000868 : | 00028634 : 00000000 : | 00028638 : 00083340 : | 0002863c : 00000000 : | 00028640 : 00022844 : | 00028644 : 00022a84 : | 00028648 : 00082880 : | 0002864c : 00000066 : | 00028650 : 00022ad0 : | 00028654 : 0000019c : | 00028658 : 646e6957 : | 0002865c : 6f00776f : | 00028660 : 00000000 : | 00028664 : 00159d20 : | 00028668 : 00159d30 : | 0002866c : 00028a58 : | 00028670 : 00000240 : | 00028674 : 00000000 : | 00028678 : 00027054 : | 0002867c : 00027034 : | 00028680 : 00000000 : | 00028684 : 00000000 : | 00028688 : 7fffffff : | 0002868c : fc15cf76 : | 00028690 : 00000004 : | 00028694 : 00026cc0 : | 00028698 : 00000002 : | 0002869c : 00000000 : | 000286a0 : 000286d4 : | - R11 000286a4 : 000286b0 : | | R12 000286a8 : fc15cc0c : | | R14: fc15cc0c : : | | = SharedCLibrary +11748 : : | | = freopen_common +c0 000286ac : fc14e89c : | | APCS function: fc14e894 : : | | = SharedCLibrary +33d0 : : | | = _sys_flen +4 000286b0 : fc14f1a4 : | | R4 000286b4 : fc14f1a4 : | | R5 000286b8 : 00026c98 : | | R6 000286bc : fc14f1a4 : | | R7 000286c0 : 00000000 : | | R8 000286c4 : 00026978 : | | R9 000286c8 : 000286fc : | | R11 000286cc : 000286e8 : | | R12 000286d0 : fc15ccac : | | R14: fc15ccac : : | | = SharedCLibrary +117e8 : : | | = freopen +28 000286d4 : fc15cb5c : | | APCS function: fc15cb54 : : | | = SharedCLibrary +11690 : : | | = freopen_common +8 000286d8 : fc14f1a4 : | | 000286dc : fc15cf74 : | | 000286e0 : 00026cc0 : | | 000286e4 : fc14d5d8 : | | - R14: fc14d5d8 (ASM call to fc17daf4) : : | | | fc14d5d8 = SharedCLibrary +2114 : : | | | = _primitive_alloc +28 : : | | | fc17daf4 = SharedCLibrary +32630 : : | | | = AcquireMutex +0 000286e8 : 00000000 : | | 000286ec : 00000000 : | | 000286f0 : 00001028 : | | 000286f4 : 0000000a : | | 000286f8 : 00000028 : | | 000286fc : 00000000 : | ? Broken APCS chain? 00028700 : 00000027 : | 00028704 : 00000000 : | 00028708 : 00026f24 : | 0002870c : 000287a0 : | 00028710 : 00028740 : | 00028714 : 00028720 : | 00028718 : fc14dad0 : | - fc14d5b0 return to fc14dad0? : : | | fc14d5b0 = SharedCLibrary +20ec : : | | = _primitive_alloc +0 : : | | fc14dad0 = SharedCLibrary +260c : : | | = malloc +34 0002871c : 40000010 : | 00028720 : 00000000 : | 00028724 : 000287dc : | 00028728 : 00000002 : | R0 0002872c : 00028ca8 : | R1 00028730 : 000287dc : | R4 00028734 : 00000001 : | R5 00028738 : 000287a0 : | R11 0002873c : 00028748 : | R12 00028740 : fc14f5ac : | R14: fc14f5ac : : | = SharedCLibrary +40e8 : : | = _main +404 00028744 : 00008bd4 : | APCS function: 00008bcc : : | = +bcc in application memory : : | = main +4 00028748 : 00570000 : | 0002874c : ffffffff : | 00028750 : 00000002 : | 00028754 : 00000000 : | 00028758 : 00000000 : | 0002875c : 00000000 : | 00028760 : 00000028 : | 00028764 : 00028780 : | 00028768 : 00026c98 : | 0002876c : 00026ce8 : | 00028770 : 03ea874c : | 00028774 : 000287b4 : | R0 00028778 : 00008bc8 : | R1 0002877c : 00022904 : | R4 - Return to 00022904? : : | | = +1a904 in application memory : : | | = dragdrop_scroll +1a4 00028780 : 000235ec : | R5 00028784 : 000235ec : | R6 00028788 : 00000028 : | R7 0002878c : 00026a80 : | R8 00028790 : 00026978 : | R9 00028794 : 000287b0 : | R11 00028798 : 000287a4 : | R12 0002879c : 0002291c : | R14: 0002291c : : | = +1a91c in application memory : : | = dragdrop_scroll +1bc 000287a0 : fc14f1b4 : | APCS function: fc14f1ac : : | = SharedCLibrary +3ce8 : : | = _main +4 000287a4 : 00000000 : | R11 000287a8 : 000287b4 : | R12 000287ac : fc17c1ec : | R14: fc17c1ec : : | = SharedCLibrary +30d28 : : | = _kernel_CallInitProcs +48 000287b0 : 00022910 : | APCS function: 00022908 : : | = +1a908 in application memory : : | = dragdrop_scroll +1a8 ------------------------------------------------- |
Sprow (202) 1158 posts |
I think this should solve it. The loader was carefully checking for NULL, but a combination of |
David Pitt (3386) 1248 posts |
Brilliant, fixed it here! Thanks. |