ZeroPain2
Colin Ferris (399) 1818 posts |
Is there a ZeroPain version of Sargasso? Is there a standard way of updating ZeroPain problems – ie in a !RunImage – teq rx,#0 and bypassing the problem? (working on the !RunImage a large Asm file) |
Rick Murray (539) 13855 posts |
Your TEQ might work as a sanity check in a module or the like, however in my experience of tracking down page zero issues, it is usually an actual bug that needs sorting out – usually either references to a handle of array before it has been assigned, or after it has been freed… or screwy logic that tries to be clever and do things like “if something is NULL or something.somethingelse is NULL”…(the second clause running foul of trying to look at a potentially NULL pointer!). As such, a program that lives in &8000-&xxxxx (or a module further away) accessing memory around &0 is a clear sign that something is going wrong. Better to cure the cause than to provide a workaround elsewhere. Though, if you’re doing a patch-up job to a disassembled executable, your job is suddenly much harder, and in this case, one could overlook some TEQs in lieu of having any actual source to play with. :-) |
Colin Ferris (399) 1818 posts |
Thanks for the reply – I presume if you have the source – the ‘C’ compiler won’t flag an error – if it produces code that peeks the zero page. Are there any examples of the problem code available in ‘C’- and also the corrected versions? Are there any maintainers of ‘’ v2.03 31 Aug 2013 and ’POPstar’ v2.06-ds.5 (8-Jun-2013) – both producing zero pain output. 00008c14 : e7c0c003 : STRB R12,[R0,R3] 0000ab38 : e5841048 : STR R1,[R4,#72] |
John Williams (567) 768 posts |
James Bursa (Sargasso) and Darren Salt (ds versions of POPstar). James is part of the NetSurf team, and Darren, once of YouMustBeJoking, has moved sites but should be easily traceable. But are you sure it’s really these apps causing the problem? I don’t actually understand the ZeroPain output myself! |
Steve Pampling (1551) 8173 posts |
Well, the source for PopStar is available, at the same location as the executable. (IIRC each person modifying the original has complied with the source availability requirement. |