Who's Online
102 user(s) are online (
84 user(s) are browsing
Forums )
Members: 1
Guests: 101
Raziel ,
more...
Topic options
View mode
Newest First
ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/12 11:27
#1
Just popping in
Joined: 2021/5/13 6:34Last Login
: 11/8 20:15
From
Group:
Registered Users
I'm using ImageFx 4.1 (18.10.1999) with AmigaOS 4.1 (X5000). It is pretty stable, but if I enable debug kernel (kernel.debug on Kicklayout) and try to open ImageFx it crashes immediately, with 'Guru' 8000003. Is there any fix or workaround for this issue?
Here is the debug code:
[ 13 : 03 : 34 : 900 ] â [ _impl_AddTask ] Task = 0x6B7D1660 , ETask = 0xEFE6B310 , Context = 0xEFE353E0â
[ 13 : 03 : 34 : 900 ] â [ _impl_AddTask ] Stack bottom = 0x6A6BD0A0 , Stack top = 0x6A6C1090 , Stack pointer = 0x6A6C1060â
[ 13 : 03 : 34 : 900 ] â [ _impl_AddTask ] Task added to ready listâ
[ 13 : 03 : 34 : 900 ] â [ _impl_RemTask ] Removing 0x6B7D1660 ( self ) = WBLâ
[ 13 : 03 : 34 : 961 ] â [ _impl_SuspendTask ] Suspending self ( WBL ) â
[ 13 : 03 : 34 : 961 ] â [ _impl_AddTask ] Adding Task 0x6B7D1660 , ImageFX ( 0x6B7CC480 ) â
[ 13 : 03 : 34 : 961 ] â [ _impl_AddTask ] Task = 0x6B7D1660 , ETask = 0xEFE6B310 , Context = 0xEFE353E0â
[ 13 : 03 : 34 : 961 ] â [ _impl_AddTask ] Stack bottom = 0x6A6BD0A0 , Stack top = 0x6A6C1090 , Stack pointer = 0x6A6C1060â
[ 13 : 03 : 34 : 961 ] â [ _impl_AddTask ] Task added to ready listâ
[ 13 : 03 : 34 : 961 ] â [ _impl_OpenLibrary ] Library "mathieeedoubtrans.library" not foundâ
[ 13 : 03 : 34 : 961 ] â [ _impl_InitResident ] Initializing native autoinit mathieeedoubtrans . library V52 , priority 0â
[ 13 : 03 : 35 : 013 ] â [ _impl_CreateLibrary ] Done creating library , base at 0x6A26AA00â
[ 13 : 03 : 35 : 013 ] â [ _impl_InitResident ] mathieeedoubtrans . library V52 initializedâ
[ 13 : 03 : 35 : 013 ] â [ _impl_OpenLibrary ] Library "ppc.library" not foundâ
[ 13 : 03 : 35 : 013 ] â [ _impl_OpenLibrary ] Library "ppc.library" not foundâ
[ 13 : 03 : 35 : 013 ] â [ _impl_OpenLibrary ] Library "magic.library" not foundâ
[ 13 : 03 : 35 : 013 ] â [ _impl_OpenLibrary ] Library "magic.library" not foundâ
[ 13 : 03 : 35 : 013 ] â [ _impl_OpenLibrary ] Library "thumbnail.library" not foundâ
[ 13 : 03 : 35 : 013 ] â [ _impl_InitResident ] Making version 0 library thumbnail . library V38â
[ 13 : 03 : 35 : 013 ] â [ _impl_InitResident ] Emulating init function at 0x6B0F5028â
[ 13 : 03 : 35 : 056 ] â [ _impl_OpenLibrary ] Library "retina.library" not foundâ
[ 13 : 03 : 35 : 056 ] â [ _impl_OpenLibrary ] Library "retina.library" not foundâ
[ 13 : 03 : 35 : 056 ] â [ _impl_OpenLibrary ] Library "retinaemu.library" not foundâ
[ 13 : 03 : 35 : 056 ] â [ _impl_OpenLibrary ] Library "retinaemu.library" not foundâ
[ 13 : 03 : 35 : 056 ] â [ _impl_InitResident ] Init function for thumbnail . library returned 0x6AFEF3BEâ
[ 13 : 03 : 35 : 056 ] â [ _impl_OpenLibrary ] Library "post.library" not foundâ
[ 13 : 03 : 35 : 124 ] â [ _impl_InitResident ] Making version 0 library post . library V22â
[ 13 : 03 : 35 : 124 ] â [ _impl_InitResident ] Emulating init function at 0x6A19807Câ
[ 13 : 03 : 35 : 124 ] â [ _impl_InitResident ] Init function for post . library returned 0x68BCE564â
[ 13 : 03 : 35 : 124 ] â [ _impl_AddTask ] Adding Task 0x69447600 , CON / con - handler 53.82 ( 0x68BB88C0 ) â
[ 13 : 03 : 35 : 124 ] â [ _impl_AddTask ] Task = 0x69447600 , ETask = 0xEFE6B3D0 , Context = 0xEFE357C0â
[ 13 : 03 : 35 : 124 ] â [ _impl_AddTask ] Stack bottom = 0x6A6A30A0 , Stack top = 0x6A6A7090 , Stack pointer = 0x6A6A7060â
[ 13 : 03 : 35 : 152 ] â [ _impl_AddTask ] Task added to ready listâ
[ 13 : 03 : 35 : 152 ] â [ _impl_RemTask ] Removing 0x69447600 ( self ) = CON / con - handler 53.82 â
[ 13 : 03 : 35 : 152 ] â [ _impl_SuspendTask ] Suspending self ( CON / con - handler 53.82 ) â
[ 13 : 03 : 35 : 152 ] â [ _impl_AddTask ] Adding Task 0x69447600 , CON / con - handler 53.82 ( 0x68BB8BC0 ) â
[ 13 : 03 : 35 : 202 ] â [ _impl_AddTask ] Task = 0x69447600 , ETask = 0xEFE6B3D0 , Context = 0xEFE357C0â
[ 13 : 03 : 35 : 202 ] â [ _impl_AddTask ] Stack bottom = 0x6B1350A0 , Stack top = 0x6B139090 , Stack pointer = 0x6B139060â
[ 13 : 03 : 35 : 202 ] â [ _impl_AddTask ] Task added to ready listâ
[ 13 : 03 : 35 : 202 ] â [ _impl_RemTask ] Removing 0x69447600 ( self ) = CON / con - handler 53.82 â
[ 13 : 03 : 35 : 202 ] â [ _impl_SuspendTask ] Suspending self ( CON / con - handler 53.82 ) â
[ 13 : 03 : 35 : 202 ] â [ _impl_AddTask ] Adding Task 0x69447600 , CON / con - handler 53.82 ( 0x68BB8DC0 ) â
[ 13 : 03 : 35 : 202 ] â [ _impl_AddTask ] Task = 0x69447600 , ETask = 0xEFE6B3D0 , Context = 0xEFE357C0â
[ 13 : 03 : 35 : 249 ] â [ _impl_AddTask ] Stack bottom = 0x6B1350A0 , Stack top = 0x6B139090 , Stack pointer = 0x6B139060â
[ 13 : 03 : 35 : 249 ] â [ _impl_AddTask ] Task added to ready listâ
[ 13 : 03 : 35 : 249 ] â [ _impl_RemTask ] Removing 0x69447600 ( self ) = CON / con - handler 53.82 â
[ 13 : 03 : 35 : 249 ] â [ _impl_SuspendTask ] Suspending self ( CON / con - handler 53.82 ) â
[ 13 : 03 : 35 : 249 ] â [ _impl_AddTask ] Adding Task 0x69447600 , CON / con - handler 53.82 ( 0x6B122DD0 ) â
[ 13 : 03 : 35 : 345 ] â [ _impl_AddTask ] Task = 0x69447600 , ETask = 0xEFE6B3D0 , Context = 0xEFE357C0â
[ 13 : 03 : 35 : 345 ] â [ _impl_AddTask ] Stack bottom = 0x6B1350A0 , Stack top = 0x6B139090 , Stack pointer = 0x6B139060â
[ 13 : 03 : 35 : 345 ] â [ _impl_AddTask ] Task added to ready listâ
[ 13 : 03 : 35 : 345 ] â [ _impl_RemTask ] Removing 0x69447600 ( self ) = CON / con - handler 53.82 â
[ 13 : 03 : 35 : 345 ] â [ _impl_SuspendTask ] Suspending self ( CON / con - handler 53.82 ) â
[ 13 : 03 : 35 : 345 ] â [ _impl_AddTask ] Adding Task 0x689FBC20 , ARexx ( 0x6A167620 ) â
[ 13 : 03 : 35 : 666 ] â [ _impl_AddTask ] Task = 0x689FBC20 , ETask = 0xEFE6B3D0 , Context = 0xEFE357C0â
[ 13 : 03 : 35 : 666 ] â [ _impl_AddTask ] Stack bottom = 0x6A66B0A0 , Stack top = 0x6A66F090 , Stack pointer = 0x6A66F060â
[ 13 : 03 : 35 : 666 ] â [ _impl_AddTask ] Task added to ready listâ
[ 13 : 03 : 35 : 666 ] â [ HAL_DfltTrapHandler ] *** Warning : Fatal exception in task 0x6B7D1660 ( ImageFX , etask = 0xEFE6B310 ) at ip 0x0183B008â
[ 13 : 03 : 35 : 666 ] â [ HAL_Alert ] ALERT ! 0x80000003â
[ 13 : 03 : 35 : 666 ] â [ HAL_SuspendTaskWithUpdate ] Suspending 0x6B7D1660 with state = 2 , DAR = 0xCCCCCCD0 , at IP = 0x0183B008 , LR = 0x01848D04â
[ 13 : 03 : 35 : 709 ] âkernel 54.30 ( 1.1.2021 ) AmigaOne X5000 debugâ
[ 13 : 03 : 35 : 709 ] âMachine model : 10 ( AmigaOne X5000 / 40 ) â
[ 13 : 03 : 35 : 709 ] âDump of context at 0xEFE353E0â
[ 13 : 03 : 35 : 709 ] âTrap type : DSI exceptionâ
[ 13 : 03 : 35 : 709 ] âDSISR : 00800000 DAR : CCCCCCD0â
[ 13 : 03 : 35 : 709 ] âNo matching page foundâ
[ 13 : 03 : 35 : 709 ] âMachine State ( raw ): 0x0002F030â
[ 13 : 03 : 35 : 709 ] âMachine State ( verbose ): [ Critical Ints on ] [ ExtInt on ] [ User ] [ IAT on ] [ DAT on ] â
[ 13 : 03 : 35 : 709 ] âInstruction pointer : in module kernel . debug + 0x0003B008 ( 0x0183B008 ) â
[ 13 : 03 : 35 : 709 ] âCrashed process : ImageFX ( 0x6B7D1660 ) â
[ 13 : 03 : 35 : 709 ] âDSI verbose error description : Access to address 0xCCCCCCD0 not allowed by page protection in user state ( protection violation ) â
[ 13 : 03 : 35 : 752 ] âAccess was a store operationâ
[ 13 : 03 : 35 : 752 ] âException Syndrome Register : 0x00800000â
[ 13 : 03 : 35 : 752 ] â 0 : 01848 D04 693AEC50 00000002 0216A968 69FB1700 6FFBC000 6BED7740 6BED7780â
[ 13 : 03 : 35 : 752 ] â 8 : CCCCCCCC CCCCCCCC CCCCCCCC 693AE920 35933559 0000000D 693B3004 0216A968â
[ 13 : 03 : 35 : 752 ] â16 : 69399004 693B2FFC 1A4ECC01 6F851000 8000000C 00016000 8000000B 8000000Aâ
[ 13 : 03 : 35 : 752 ] â24 : 80000008 FFD60001 018625 C0 00000000 01848 D04 02160000 0216A968 69FB1700â
[ 13 : 03 : 35 : 752 ] âCR : 35933555 XER : A000007E CTR : 0183 AF94 LR : 01848 D04â
[ 13 : 03 : 35 : 795 ] ââ
[ 13 : 03 : 35 : 795 ] âDisassembly of crash site : â
[ 13 : 03 : 35 : 795 ] â 0183 AFF8 : 815F0000 lwz r10 , 0 ( r31 ) â
[ 13 : 03 : 35 : 795 ] â 0183 AFFC : 3D20CCCC lis r9 ,- 13108â
[ 13 : 03 : 35 : 795 ] â 0183 B000 : 811F0004 lwz r8 , 4 ( r31 ) â
[ 13 : 03 : 35 : 795 ] â 0183 B004 : 6129CCCC ori r9 , r9 , 52428â
[ 13 : 03 : 35 : 795 ] â >0183 B008 : 910A0004 stw r8 , 4 ( r10 ) â
[ 13 : 03 : 35 : 795 ] â 0183 B00C : 815F0004 lwz r10 , 4 ( r31 ) â
[ 13 : 03 : 35 : 795 ] â 0183 B010 : 811F0000 lwz r8 , 0 ( r31 ) â
[ 13 : 03 : 35 : 795 ] â 0183 B014 : 910A0000 stw r8 , 0 ( r10 ) â
[ 13 : 03 : 35 : 795 ] â 0183 B018 : 913F0000 stw r9 , 0 ( r31 ) â
[ 13 : 03 : 35 : 838 ] â 0183 B01C : 913F0004 stw r9 , 4 ( r31 ) â
[ 13 : 03 : 35 : 838 ] âmsr : 0x0002B032â
[ 13 : 03 : 35 : 838 ] âTLB1 ( 64 entries ): â
[ 13 : 03 : 35 : 838 ] â * [ 51 ]: size = 7 tid = 0 TS = 1 epn = 0xFE000000 rpn = 0x0000000F_FE000000 WIMG = 0x5 XXWWRR = 0xF protectedâ
[ 13 : 03 : 35 : 838 ] â * [ 52 ]: size = 6 tid = 0 TS = 1 epn = 0x01000000 rpn = 0x00000000_01000000 WIMG = 0x0 XXWWRR = 0x5 protectedâ
[ 13 : 03 : 35 : 838 ] â * [ 53 ]: size = 6 tid = 0 TS = 1 epn = 0x01400000 rpn = 0x00000000_01400000 WIMG = 0x0 XXWWRR = 0x5 protectedâ
[ 13 : 03 : 35 : 838 ] â * [ 54 ]: size = 6 tid = 0 TS = 1 epn = 0x01800000 rpn = 0x00000000_01800000 WIMG = 0x0 XXWWRR = 0x33 protectedâ
[ 13 : 03 : 35 : 881 ] â * [ 55 ]: size = 6 tid = 0 TS = 1 epn = 0x01C00000 rpn = 0x00000000_01C00000 WIMG = 0x0 XXWWRR = 0x33 protectedâ
[ 13 : 03 : 35 : 881 ] â * [ 56 ]: size = 5 tid = 0 TS = 1 epn = 0x02000000 rpn = 0x00000000_02000000 WIMG = 0x0 XXWWRR = 0xF protectedâ
[ 13 : 03 : 35 : 881 ] â * [ 57 ]: size = 5 tid = 0 TS = 1 epn = 0x02100000 rpn = 0x00000000_02100000 WIMG = 0x0 XXWWRR = 0xF protectedâ
[ 13 : 03 : 35 : 881 ] â * [ 58 ]: size = 5 tid = 0 TS = 1 epn = 0x02200000 rpn = 0x00000000_02200000 WIMG = 0x0 XXWWRR = 0xF protectedâ
[ 13 : 03 : 35 : 881 ] â * [ 59 ]: size = 4 tid = 0 TS = 1 epn = 0x02300000 rpn = 0x00000000_02300000 WIMG = 0x0 XXWWRR = 0xF protectedâ
[ 13 : 03 : 35 : 924 ] â * [ 60 ]: size = 4 tid = 0 TS = 1 epn = 0x02340000 rpn = 0x00000000_02340000 WIMG = 0x0 XXWWRR = 0xF protectedâ
[ 13 : 03 : 35 : 924 ] â * [ 61 ]: size = 7 tid = 0 TS = 0 epn = 0xFE000000 rpn = 0x0000000F_FE000000 WIMG = 0x5 XXWWRR = 0xF protectedâ
[ 13 : 03 : 35 : 924 ] â * [ 62 ]: size = A tid = 0 TS = 0 epn = 0x00000000 rpn = 0x00000000_00000000 WIMG = 0x0 XXWWRR = 0x3F protectedâ
[ 13 : 03 : 35 : 924 ] â * [ 63 ]: size = A tid = 0 TS = 0 epn = 0x40000000 rpn = 0x00000000_40000000 WIMG = 0x0 XXWWRR = 0x3F protectedâ
[ 13 : 03 : 35 : 924 ] âHAL_MaxTLB = 50 , HAL_NextTLB = 0â
[ 13 : 03 : 35 : 924 ] âMMUCFG = 0x064809C4â
[ 13 : 03 : 35 : 967 ] âmas0 = 0x103F0000â
[ 13 : 03 : 35 : 967 ] âmas1 = 0xC0000A00â
[ 13 : 03 : 35 : 967 ] âmas2 = 0x40000000â
[ 13 : 03 : 35 : 967 ] âmas3 = 0x4000003Fâ
[ 13 : 03 : 35 : 967 ] âmas4 = 0x00000100â
[ 13 : 03 : 35 : 967 ] âmas5 = 0x00000000â
[ 13 : 03 : 35 : 967 ] âmas6 = 0x00000001â
[ 13 : 03 : 35 : 967 ] âmas7 = 0x00000000â
[ 13 : 03 : 35 : 967 ] âmas8 = 0x00000000â
[ 13 : 03 : 35 : 967 ] ââ
[ 13 : 03 : 35 : 967 ] âKernel command line : debug munge debuglevel = 0â
[ 13 : 03 : 35 : 967 ] ââ
[ 13 : 03 : 35 : 967 ] âRegisters pointing to code : â
[ 13 : 03 : 35 : 967 ] âr0 : native kernel module kernel . debug + 0x00048d04â
[ 13 : 03 : 35 : 967 ] âr3 : native kernel module kernel . debug + 0x0096a968â
[ 13 : 03 : 35 : 967 ] âr15 : native kernel module kernel . debug + 0x0096a968â
[ 13 : 03 : 35 : 967 ] âr26 : native kernel module kernel . debug + 0x000625c0â
[ 13 : 03 : 35 : 967 ] âr28 : native kernel module kernel . debug + 0x00048d04â
[ 13 : 03 : 36 : 010 ] âr29 : native kernel module kernel . debug + 0x00960000â
[ 13 : 03 : 36 : 010 ] âr30 : native kernel module kernel . debug + 0x0096a968â
[ 13 : 03 : 36 : 010 ] âip : native kernel module kernel . debug + 0x0003b008â
[ 13 : 03 : 36 : 010 ] âlr : native kernel module kernel . debug + 0x00048d04â
[ 13 : 03 : 36 : 010 ] âctr : native kernel module kernel . debug + 0x0003af94â
[ 13 : 03 : 36 : 010 ] ââ
[ 13 : 03 : 36 : 010 ] âStack trace : â
[ 13 : 03 : 36 : 010 ] â ( 0x693AEC50 ) native kernel module kernel . debug + 0x0003b008â
[ 13 : 03 : 36 : 010 ] â ( 0x693AEC70 ) native kernel module kernel . debug + 0x00048d04â
[ 13 : 03 : 36 : 010 ] â ( 0x693AEC90 ) native kernel module kernel . debug + 0x00026d24â
[ 13 : 03 : 36 : 010 ] â ( 0x693AECA4 ) 0x6FEFD99E [ cannot decode symbol ] â
[ 13 : 03 : 36 : 053 ] â ( 0x69444834 ) 0x70FF2B40 [ cannot decode symbol ] â
[ 13 : 03 : 36 : 053 ] ââ
[ 13 : 03 : 36 : 053 ] âDisassembly of crash site : â
[ 13 : 03 : 36 : 053 ] â 0183 AFF8 : 815F0000 lwz r10 , 0 ( r31 ) â
[ 13 : 03 : 36 : 053 ] â 0183 AFFC : 3D20CCCC lis r9 ,- 13108â
[ 13 : 03 : 36 : 053 ] â 0183 B000 : 811F0004 lwz r8 , 4 ( r31 ) â
[ 13 : 03 : 36 : 053 ] â 0183 B004 : 6129CCCC ori r9 , r9 , 52428â
[ 13 : 03 : 36 : 053 ] â >0183 B008 : 910A0004 stw r8 , 4 ( r10 ) â
[ 13 : 03 : 36 : 053 ] â 0183 B00C : 815F0004 lwz r10 , 4 ( r31 ) â
[ 13 : 03 : 36 : 053 ] â 0183 B010 : 811F0000 lwz r8 , 0 ( r31 ) â
[ 13 : 03 : 36 : 053 ] â 0183 B014 : 910A0000 stw r8 , 0 ( r10 ) â
[ 13 : 03 : 36 :096] â 0183 B018 : 913F0000 stw r9 , 0 ( r31 ) â
[ 13 : 03 : 36 :096] â 0183 B01C : 913F0004 stw r9 , 4 ( r31 ) â
[ 13 : 03 : 36 :096] âStack pointer ( 0x693AEC50 ) is inside boundsâ
[ 13 : 03 : 36 :096] âRedzone is OK ( 4 ) â
[ 13 : 03 : 36 :096] ââ
[ 13 : 03 : 36 :096] â68k register dumpâ
[ 13 : 03 : 36 :096] âDATA : 00000000 FFFFFFF7 000003EE 00000003 FFFFFFFF 1BE45566 00000001 00000001â
[ 13 : 03 : 36 :096] â ----> 00000001 - "modules/preview/WindowedCGX" Hunk 0000 Offset 00000000 ( SegList : 0x1A82DC01 ) â
[ 13 : 03 : 36 :096] â ----> 00000001 - "modules/preview/WindowedCGX" Hunk 0000 Offset 00000000 ( SegList : 0x1A82DC01 ) â
[ 13 : 03 : 36 :096] âADDR : 69FB1700 69FB1700 69FB1700 6B28F110 6B10B008 69FB1700 022CECC2 693AECA4â
[ 13 : 03 : 36 : 140 ] â ----> 6B10B008 - "ImageFX" Hunk 0004 Offset 00008000 ( SegList : 0x1A4ECC01 ) â
[ 13 : 03 : 36 : 140 ] â ----> 022CECC2 - "kernel.debug" Hunk 0001 Offset 0018 ECC2â
[ 13 : 03 : 36 : 140 ] âPage information : â
[ 13 : 03 : 36 : 140 ] âPage not foundâ
[ 13 : 03 : 36 : 140 ] ââ
[ 13 : 03 : 36 : 140 ] âReady Tasksâ
[ 13 : 03 : 36 : 140 ] â MassStorage Device Task ( pri 5 , sigrec 0x20000000 , sigwait 0xE4009000 , masked 0x20000000 ) â
[ 13 : 03 : 36 : 140 ] â IDF1 / FastFileSystem 53.2 ( pri 5 , sigrec 0x20000000 , sigwait 0xA8000100 , masked 0x20000000 ) â
[ 13 : 03 : 36 : 140 ] â IDF0 / FastFileSystem 53.2 ( pri 5 , sigrec 0x20000000 , sigwait 0xA8000100 , masked 0x20000000 ) â
[ 13 : 03 : 36 : 183 ] â RexxMaster ( pri 4 , sigrec 0x40000100 , sigwait 0xC0000000 , masked 0x40000000 ) â
[ 13 : 03 : 36 : 183 ] â Workbench ( pri 1 , sigrec 0x80000100 , sigwait 0x80000000 , masked 0x80000000 ) â
[ 13 : 03 : 36 : 183 ] â ARexx ( pri 0 , sigrec 0x00000100 , sigwait 0x00000100 , masked 0x00000100 ) â
[ 13 : 03 : 36 : 183 ] â TCP / IP Control ( pri 0 , sigrec 0x40000100 , sigwait 0xF8009080 , masked 0x40000000 ) â
[ 13 : 03 : 36 : 226 ] â ELF Collector ( pri 0 , sigrec 0x00000100 , sigwait 0x00000100 , masked 0x00000100 ) â
[ 13 : 03 : 36 : 226 ] â hub . usbfd ( pri 0 , sigrec 0x10000000 , sigwait 0x30000000 , masked 0x10000000 ) â
[ 13 : 03 : 36 : 226 ] â hub . usbfd ( pri 0 , sigrec 0x10000000 , sigwait 0x30000000 , masked 0x10000000 ) â
[ 13 : 03 : 36 : 226 ] â dos_signal_server ( pri - 5 , sigrec 0x00004100 , sigwait 0x00000100 , masked 0x00000100 ) â
[ 13 : 03 : 36 : 269 ] â idle . task ( pri - 128 , sigrec 0x00000000 , sigwait 0x00000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 269 ] ââ
[ 13 : 03 : 36 : 269 ] âWaiting Tasksâ
[ 13 : 03 : 36 : 269 ] â MH00 / FastFileSystem 53.2 ( pri 10 , sigrec 0x00000000 , sigwait 0xA8000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 269 ] â DH0 / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 269 ] â DH0 / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 312 ] â DH2 / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 312 ] â EHCI Controller Task Unit 0 ( pri 15 , sigrec 0x00000000 , sigwait 0xBE009000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 312 ] â EHCI Controller Task Unit 1 ( pri 15 , sigrec 0x00000000 , sigwait 0xBE009000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 312 ] â USB stack ( pri 18 , sigrec 0x00000000 , sigwait 0xF800D000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 312 ] â dos_filedir_notify ( pri 5 , sigrec 0x80000100 , sigwait 0x40001000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 355 ] â DH2 / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 355 ] â p50x0sata . device Port 0 ( pri 12 , sigrec 0x10000000 , sigwait 0xC0007000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 355 ] â DH1 / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 355 ] â DH1 / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 398 ] â DH2c / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 398 ] â DH2c / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 398 ] â DH2n / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 398 ] â DH2n / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 441 ] â DH6 / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 441 ] â DH6 / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 441 ] â DH7 / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 441 ] â DH7 / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 441 ] â HSF0 / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 484 ] â HSF0 / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 484 ] â HSF1 / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 484 ] â HSF1 / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 484 ] â Mounter Task ( pri - 1 , sigrec 0x00000000 , sigwait 0xB0001000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 527 ] â Mounter GUI ( pri 0 , sigrec 0x00000000 , sigwait 0x80007000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 527 ] â Mounter Companion Process ( pri - 1 , sigrec 0x00000000 , sigwait 0x80003000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 527 ] â Workbench DosList Notify ( pri 1 , sigrec 0x00000000 , sigwait 0x00003000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 527 ] â ramlib . support ( pri - 2 , sigrec 0x00000100 , sigwait 0x80005000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 570 ] â ramlib ( pri 1 , sigrec 0x00000100 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 570 ] â X - Dock ( pri 0 , sigrec 0x00000100 , sigwait 0xFE001000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 570 ] â hid . usbfd ( pri 10 , sigrec 0x00000100 , sigwait 0xE0000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 570 ] â HID Mouse ( pri 10 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 570 ] â appdir envarc manager ( pri - 50 , sigrec 0x80000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 613 ] â DH00 / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 613 ] â DH00 / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 613 ] â DH0b / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 613 ] â DH0b / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 656 ] â DH2m / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 656 ] â DH2m / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 656 ] â DH5 / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 656 ] â DH5 / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 699 ] â MH01 / SmartFilesystem 1.293 ( pri 10 , sigrec 0x00000000 , sigwait 0xE0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 699 ] â MH01 / SmartFilesystem 1.293 ( pri 11 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 699 ] â ICD0 / CDFileSystem 53.8 ( pri 10 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 699 ] â ICD1 / CDFileSystem 53.8 ( pri 10 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 699 ] â TCP / IP Superserver ( pri 0 , sigrec 0x00000100 , sigwait 0xD0000080 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 742 ] â RANDOM / Random - Handler 52.1 ( pri 5 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 742 ] â URL / launch - handler 53.39 ( pri 5 , sigrec 0x00000100 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 742 ] â TEXTCLIP / textclip - handler 53.4 ( pri 3 , sigrec 0x00000100 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 742 ] â TCP / IP Configuration ( pri 0 , sigrec 0x00000100 , sigwait 0xF8003000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 785 ] â rtl8169 . device.0 ( pri 5 , sigrec 0x00000100 , sigwait 0x78008000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 785 ] â TCP / IP Log ( pri 0 , sigrec 0x00000000 , sigwait 0x80003000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 785 ] â select . gadget prefs ( pri 0 , sigrec 0x00000100 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 785 ] â FKey ( pri 0 , sigrec 0x00000010 , sigwait 0xC000D000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 828 ] â texteditor . gadget Clipboard Server ( pri 1 , sigrec 0x00000100 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 828 ] â ClickToFront ( pri 21 , sigrec 0x00000000 , sigwait 0xE000D000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 828 ] â AsyncWB ( pri 0 , sigrec 0x00000100 , sigwait 0xC0001000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 828 ] â IPrefs ( pri 0 , sigrec 0x20000000 , sigwait 0x0000F000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 828 ] â CON / con - handler 53.82 ( pri 5 , sigrec 0x00000000 , sigwait 0xA0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 871 ] â CON / con - handler 53.82 ( pri 5 , sigrec 0x00000000 , sigwait 0xA0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 871 ] â DefIcons ( pri 0 , sigrec 0x00000000 , sigwait 0x80009000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 871 ] â CON / con - handler 53.82 ( pri 5 , sigrec 0x00000000 , sigwait 0xA0000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 871 ] â string . gadget server ( pri 1 , sigrec 0x00000000 , sigwait 0x40000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 914 ] â p50x0sata . device Port 1 ( pri 12 , sigrec 0x10000000 , sigwait 0xC0007000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 914 ] â NVMe Unit 0 ( pri 12 , sigrec 0x00000000 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 914 ] â Workbench Clipboard Server ( pri 1 , sigrec 0x00000100 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 914 ] â ConClip ( pri 0 , sigrec 0x00000000 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 958 ] â AUDIO / AHI - Handler 6.2 ( pri 5 , sigrec 0x00000000 , sigwait 0x00000100 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 958 ] â diskimage . device unit 4 ( pri 4 , sigrec 0x00000100 , sigwait 0xC0000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 958 ] â diskimage . device unit 5 ( pri 4 , sigrec 0x00000100 , sigwait 0xC0000000 , masked 0x00000000 ) â
[ 13 : 03 : 36 : 958 ] â diskimage . device unit 0 ( pri 4 , sigrec 0x00000100 , sigwait 0xC0000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 001 ] â diskimage . device unit 1 ( pri 4 , sigrec 0x00000000 , sigwait 0xC0000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 001 ] â hid . usbfd ( pri 10 , sigrec 0x00000100 , sigwait 0xE0000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 001 ] â HID Consumer ( pri 10 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 001 ] â HID Keyboard ( pri 10 , sigrec 0x00000000 , sigwait 0x90001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 001 ] â HID Mouse ( pri 10 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 044 ] â hid . usbfd ( pri 10 , sigrec 0x00000100 , sigwait 0xE0000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 044 ] â HID Keyboard ( pri 10 , sigrec 0x00000000 , sigwait 0x90001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 044 ] â USB stack Process ( pri 0 , sigrec 0x00000100 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 044 ] â APPDIR / appdir - handler 54.17 ( pri 5 , sigrec 0x00000100 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 :087] â MassStorage Notifier ( pri 0 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 :087] â DST watcher ( pri 0 , sigrec 0x00000000 , sigwait 0xC0000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 :087] â application . library messageserver ( pri 0 , sigrec 0x00000000 , sigwait 0xC0000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 :087] â KDebug Task ( pri 0 , sigrec 0x00000000 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 130 ] â RAM / ram - handler 54.24 ( pri 10 , sigrec 0x00000100 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 130 ] â ENV / env - handler 54.18 ( pri 5 , sigrec 0x00000100 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 130 ] â CON / con - handler 53.82 ( pri 5 , sigrec 0x00000000 , sigwait 0xA0000100 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 130 ] â RAW / con - handler 53.82 ( pri 5 , sigrec 0x00000000 , sigwait 0xA0000100 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 130 ] â CON / con - handler 53.82 ( pri 5 , sigrec 0x00000000 , sigwait 0xA0000100 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 173 ] â SFS DosList handler ( pri 19 , sigrec 0x00000000 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 173 ] â dos_nbmd_process ( pri 5 , sigrec 0x00000000 , sigwait 0x00001100 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 173 ] â dos_lock_handler ( pri 5 , sigrec 0x00000000 , sigwait 0x00001100 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 173 ] â hub . usbfd ( pri 0 , sigrec 0x00000000 , sigwait 0x30000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 216 ] â hub . usbfd ( pri 0 , sigrec 0x00000000 , sigwait 0x30000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 216 ] â DMA2 Channel 4 Handler ( pri 0 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 216 ] â DMA1 Channel 4 Handler ( pri 0 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 216 ] â DMA2 Channel 3 Handler ( pri 0 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 259 ] â DMA1 Channel 3 Handler ( pri 0 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 259 ] â DMA2 Channel 2 Handler ( pri 0 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 259 ] â DMA1 Channel 2 Handler ( pri 0 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 259 ] â DMA2 Channel 1 Handler ( pri 0 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 259 ] â DMA1 Channel 1 Handler ( pri 0 , sigrec 0x00000000 , sigwait 0x80001000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 302 ] â Exec Command and Control ( pri 30 , sigrec 0x00000000 , sigwait 0x80000000 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 302 ] â rhd_gc ( pri 100 , sigrec 0x00000000 , sigwait 0x80000001 , masked 0x00000000 ) â
[ 13 : 03 : 37 : 302 ] ââ
[ 13 : 03 : 37 : 302 ] âSuspended Tasksâ
[ 13 : 03 : 37 : 302 ] ââ
[ 13 : 03 : 37 : 302 ] ââ
[ 13 : 03 : 37 : 302 ] â [ _impl_AddTask ] Adding Task 0x689FBDA0 , Background CLI ( 0x6A167520 ) â
[ 13 : 03 : 37 : 302 ] â [ _impl_AddTask ] Task = 0x689FBDA0 , ETask = 0xEFE6B0D0 , Context = 0xEFE6D7C0â
[ 13 : 03 : 37 : 340 ] â [ _impl_AddTask ] Stack bottom = 0x6A6700A0 , Stack top = 0x6A674090 , Stack pointer = 0x6A674060â
[ 13 : 03 : 37 : 340 ] â [ _impl_AddTask ] Task added to ready listâ
[ 13 : 03 : 37 : 340 ] â [ _impl_RemTask ] Removing 0x689FBC20 ( self ) = ARexxâ
[ 13 : 03 : 37 : 340 ] â [ _impl_SuspendTask ] Suspending self ( ARexx ) â
[ 13 : 03 : 37 : 340 ] â [ _impl_SetTaskTrap ] Trap at 0x689FC6D8 : Code = 0x7F61C368 , Data = 0x00000000â
[ 13 : 03 : 37 : 377 ] â [ _impl_SetTaskTrap ] Trap at 0x689FC6E8 : Code = 0x7F61C368 , Data = 0x00000000â
[ 13 : 03 : 37 : 377 ] â [ _impl_SetTaskTrap ] Trap at 0x689FC6F8 : Code = 0x7F61C368 , Data = 0x00000000â
[ 13 : 03 : 37 : 377 ] â
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/12 16:14
#2
Just can't stay away
Joined: 2006/12/1 19:07Last Login
: Today 18:33
From Germany
Group:
Registered Users
@Rolar
Quote:
Is there any fix or workaround for this issue? No, it's a bug in ImageFX.
The debug kernel sets some data pointers which are documented to be uninitialised to special values, in this case 0xCCCCCCCC, to make it easier find such bugs by intentionally making software crash accessing invalid pointers.
Developers of AmigaOS 4.x software with such bugs in their code can check the stack trace to get the source file name and line number of the broken code.
For using old, broken software using the non-debug kernel instead is the only option, but even if it doesn't crash immediately with the non-debug kernel it may still crash later "randomly".
There is a newer version 4.5 of
ImageFX , but I don't know if this bug is fixed in it.
Someone with access to the kernel sources could check in which parts 0xCCCCCCCC is used, other special values used in the debug kernels are for example 0xDEADBEEF, 0xDEADC0DE, 0xABADCAFE, etc., and by checking which special value is used in which parts it may be possible to find out which functions or which data types are used in a wrong way. But that would only help for still developed AmigaOS 4.x software, not for old AmigaOS 3.x/m68k software.
Edited by joerg on 2023/5/12 17:05:38
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/12 19:59
#3
Just popping in
Joined: 2022/1/18 6:29Last Login
: 11/5 7:11
From California
Group:
Registered Users
Quote:
Someone with access to the kernel sources could check in which parts 0xCCCCCCCC is used... I've no access to the sources, but according to
the wiki: Quote:
If the value is 0xCCCCCCCC (or thereabouts), then you have tried to free a Node a second time. And:
Quote:
One common mistake when dealing with lists is to access successor and/or previous pointers from a removed node. ... To help spotting such errors the debug kernel will modify the ln_Succ/ln_Prev pointer to a given fixed invalid value...
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/13 0:01
#4
Quite a regular
Joined: 2006/12/2 0:35Last Login
: 1/19 10:37
From Sydney
Group:
Registered Users
@Rolar ImageFX has always failed this way on startup with a debug kernel. It just shows what sloppy code we got away with back in those days. In this case, accessing the Prev/Next pointers in a node that has just been removed from a list. Another frequent coding error is to free some memory, then access something within it in the hope that it hasn't yet been destroyed. The debug kernel shows up these and other glaring errors, at the expense of a slight speed decrease. Any programmer worth their salt will only ever run with the debug kernel, as the "release" version is likely to crash the whole system in the same circumstances. Fortunately, the Grim reaper allows the user to "Ignore DSI Errors" and continue from a crash. ImageFX runs OK after that.
cheers tony
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/13 6:57
#5
Just popping in
Joined: 2012/12/21 10:55Last Login
: Yesterday 15:52
Group:
Registered Users
@tonywQuote:
It just shows what sloppy code we got away with back in those days. In this case, accessing the Prev/Next pointers in a node that has just been removed from a list. Another frequent coding error ... Actually it is not necessarily a bug/coding error. Docs do not say that accessing Prev/Next after removing from list is forbidden (for example on a private list, not some shared msgport list like window userport) and furthermore the internal implementation of list functions is exposed in assembly header "exec/lists.i".
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/13 12:08
#6
Quite a regular
Joined: 2006/12/2 0:35Last Login
: 1/19 10:37
From Sydney
Group:
Registered Users
@Georg OK, it was not forbidden by law or documentation in those days, but it is dangerous and certain to cause a crash some time. The only safe way to get the Next node AND remove the old one from the list is to: (1) Get the next node first; (2) Remove the old node. Of course, you should have unique ownership of the list when you do that, to prevent other tasks interrupting and changing the list while you are trying to do the same. We are trying to reduce the amount of internal structure that is exposed to the user. What was tolerated in the days of 68k assembler is often deprecated now.
cheers tony
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/13 15:46
#7
Just can't stay away
Joined: 2006/12/1 19:07Last Login
: Today 18:33
From Germany
Group:
Registered Users
@Georg
Quote:
Docs do not say that accessing Prev/Next after removing from list is forbidden They do:
exec . library / Remove
[...]
NOTES
As of V50 , this function modifies the ln_Succ and ln_Pred
pointers to prevent disaster from Removing a node twice .
[...]
Edited by joerg on 2023/5/13 16:01:45
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/13 16:53
#8
Just popping in
Joined: 2012/12/21 10:55Last Login
: Yesterday 15:52
Group:
Registered Users
@joerg
Well, but then basically you break backwards compatibility with older code which may rely on the fact that previously Remove was known and sort of documented not to modify ln_Succ/ln_Pred. Accessing ln_Succ/ln_Pred is/was not automatically a bug. It could still be correct/non-broken/non-crashing code, maybe something like this (of course not doing it like this is always better).
node = list-> lh_Head ;
while ( node -> ln_Succ )
{
Remove ( node );
/* do something (but not dealloc node) */
node = node -> ln_Succ ;
}
So there will be code out there in the wild accessing ln_Succ/ln_Pred which is really buggy, but also code out there in the wild accessing ln_Succ/ln_Pred which is not buggy at all. I don't know the ratio. But you now will get this crash/DSI thing, which sometime may "prevent disaster" and sometime just be a false alarm or maybe even "create disaster" as the formerly safe code no longer can traverse through the whole list as ln_Succ/ln_Pred after Remove() no longer points to the (former) next/previous node.
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/13 17:02
#9
Just popping in
Joined: 2012/12/21 10:55Last Login
: Yesterday 15:52
Group:
Registered Users
Quote:
Fortunately, the Grim reaper allows the user to "Ignore DSI Errors" Okay, if it is a real bug of accessing ln_Succ after Remove(). But if it isn't (the user doesn't know) then some code supposed to be executed on maybe all list's node isn't being done as the ln_Succ Poking by Remove() prevents that.
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/13 17:14
#10
Just can't stay away
Joined: 2006/12/1 19:07Last Login
: Today 18:33
From Germany
Group:
Registered Users
@Georg Using such broken code might have been an excuse for ImageFX version 4.1 (from 1999), but not for the current version 4.5 which was released in 2020. The AmigaOS 4.x exec isn't based on any of the AmigaOS 0.9-3.x exec sources (at least 95% of it was useless m68k assembler code anyway) and for most parts there was no reason to duplicate bugs in the old implementations. Backward compatibility to broken AmigaOS 3.x software was always a low priority in AmigaOS 4.x development, and for some important software there is, or was, a config file to add workarounds. Making broken software crash isn't even something new in AmigaOS 4.x, AmigaOS 1.x-3.x debugging tools like Enforcer, Wipeout, MemGuard, GuardianAngel, etc., did something similar 20-25 years ago already.
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/13 17:25
#11
Just can't stay away
Joined: 2006/12/1 19:07Last Login
: Today 18:33
From Germany
Group:
Registered Users
@Georg
Quote:
Okay, if it is a real bug of accessing ln_Succ after Remove(). But if it isn't (the user doesn't know) then some code supposed to be executed on maybe all list's node isn't being done as the ln_Succ Poking by Remove() prevents that. The exec AutoDoc includes a working example code for it:
EXAMPLE
/* If traversing 'list' with GetHead/GetSucc and nodes may at
* some point be Remove()ed, it is not permitted to read any of
* the node linkage fields after it has left the list, as removing
* the node invalidates the list pointers, therefore, it is
* necessary to determine the successor before removal.
* Note; when using these functions, don't check the
* currentNode->ln_Succ, just for currentNode != NULL.
*/
struct Node * currentNode , * nextNode ;
for ( currNode = IExec -> GetHead (list);
currentNode != NULL ;
currentNode = nextNode )
{
nextNode = IExec -> GetSucc ( currentNode );
/* Now do something with currentNode. */
/* This may include node removal from list. EG:- */
if( some_condition )
{
IExec -> Remove ( currentNode );
}
}
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/15 11:55
#12
Home away from home
Joined: 2006/12/4 23:15Last Login
: 10/14 16:04
Group:
Registered Users
I have to agree with Joerg and Tony here, attempting to traverse a list whilst modifying it has always been a bad coding behaviour, and the fact you could get away withit was just "luck". Try it with a C++ list where the equivalent node structiue is fully encapsulated and bad stuff will happen if you don't do it the right way. But as regards to backward compatabilty, the crash is only enforced with the debug kernal, which is for developers and debugging and should not generally be used by end users.
Re: ImageFx 4.1 crashes with debug kernel
Posted on:
2023/5/16 8:43
#13
Amigans Defender
Joined: 2006/12/2 13:27Last Login
: Today 7:49
From Taranto, Italy
Group:
Staff members Moderators Registered Users
Even in Java..
i'm really tired...
Currently Active Users Viewing This Thread:
2
(
0 members
and 2 Anonymous Users
)