Zap bug?
Andrew McCarthy (3688) 605 posts |
I’ve been using Zap (1.49 13-Jun-20 rick-07) for a while now and no issues. However I changed the order in which I opened a number of programs and I encounter a crash with Zap. I’m running RISC OS 5.29 (15-Dec-20) so it could be related to that. Machine RPi4. The issue for me is repeatable. I open an Obey file to open a taskwindow and I then go into a .c directory and open a file called main. I get a crash and Zap opens not the program file, but another taskwindow. It might sound daft, but if I change the order or open other programs or a file the issue isn’t present. excdump
End of dump |
Julie Stamp (8365) 474 posts |
Thanks for the report, what did you mean by “open an Obey file to open a task window”? Did you double-click on a TaskObey, or are there commands in the Obey file that open a task window, if so could you paste the file? In either case, does the crash still happen if you’ve already opened at least one task window in Zap before doing it? |
Andrew McCarthy (3688) 605 posts |
Your welcome and thank you for following up. There are commands in the Obey file that open a Task window which I double-click on. See below.
The crash occurs at the point where I open the last file. The issue is not only the crash, but it opens another Task window rather than showing the contents of the file. The error sequence is, I double-click on an Obey file, Task window opens. Then I open a directory with a file in it. I double-click on that file and it crashes and opens another TaskWindow rather than the file that I double-clicked. The files are all in a directory and sub-directory (parent-child). The Obey file is in the parent directory and the other file is in a sub-directory ©. If I double-click another file for Zap at the same level as the Obey file, it opens the file, then if double-click the Obey file all works as expected. Another scenario, if I open the file that is in the sub-directory and double-click it, contents displayed, then the Obey file it opens the Task window. No issues. *Edited to reflect directory structure and file locations |
Steve Pampling (1551) 8172 posts |
Silly question, but have you tried using StrongED to do the provision of the TaskWindow. If it crashes in that setup then the problem isn’t in Zap, if it doesn’t crash then the problem is likely in Zap. |
Andrew McCarthy (3688) 605 posts |
Since my initial report, I’ve since discovered that the crash can also be reproduced by opening a generic TaskWindow, and visiting a C file at this depth SCSI::HardDisc0.$.foo.bar.arm.c.main <- c file. |
Julie Stamp (8365) 474 posts |
Luckily I suddenly find that I can reproduce this under RPCEmu (but not RPi3). The strange thing is, when I copy the directory tree to a RAM disc the crash doesn’t happen, but it does from HostFS. I fired up reporter, and intriguingly I find the following line
which we know causes a problem. What’s surprising, is that under Zap the task window usually starts successfully using this command, and it’s only in these circumstances that you found that it crashes. |
Andrew McCarthy (3688) 605 posts |
Intriguing. Also “ZapDWExt is not 32 bit compatible”. I discovered this by typing Ctrl-Esc, then Make (Carriage Return). I thought it might be quicker to try that, rather than opening a TaskWindow. :( |
Julie Stamp (8365) 474 posts |
Unfortunately we don’t have the source to DWExt to make it 32-bit, so that command will not be available for the time being. |
Rick Murray (539) 13851 posts |
Oh, oops. That one slipped through. I though I’d exorcised all of the non-32 bit modules. At least the system refused to load it. ;-) |
Colin Ferris (399) 1818 posts |
Hmm – what does ZapDWExt do? |
Julie Stamp (8365) 474 posts |
It provides you with a variety of handy commands for programming (C mainly), like switch between source file and header or close all throwback windows. Some of the commands are already available from other modules. There’s a full list in ZapDWExt.!Help. |
Duncan Moore (8586) 2 posts |
I have a BASIC assembly source file for DWExt from !Zap 1.42. If anyone wants it, just email me at the address at the bottom of http://duncan-moore.netau.net/riscos/index.html , and I’ll send a copy. |
Julie Stamp (8365) 474 posts |
Andrew, if you use the 5.29 nightly ROM build then it now (after a long delay on my part) contains a fixed TaskWindow module for testing. |
Andrew McCarthy (3688) 605 posts |
Hi Julie, I’ve updated it to 5.29 (1-Aug-21). I have ZapTaskWindow 1.03, and the build shows TaskWindow 0.83 (31 Jul 2021). Debug output:
Message from Zap Internal error: abort on data transfer at &00000000
|
Julie Stamp (8365) 474 posts |
Oh well the search continues then. Experimenting on RPCemu, I get it to reproduce as 1) Create a text file If a doesn’t have enough line feeds, you can get it to crash by pressing enter. N.B. It’s sensitive to the length of path, so on RamFS would need to make directory or filename longer. |
Andrew McCarthy (3688) 605 posts |
:) Thanks Julie, after repeating the steps to cause a crash, I discovered a way to run a task window under another editor (StrongEd and Edit)
My only concern is that loading a new editor changes what might be expected when *where is run. Edit: The only constants I see here are the traversal depth, opening a task window, and then the file. I chose a different directory at the same level. Sadly the observation isn’t the same, but it causes a freeze on Shutdown; Ctrl-Break is the only way out. |