I.3 Notes for Amiga platforms
The Amiga has now been re-released as a completely new machine which comes with
a completely new operating system. As a result, I will not be implementing
any of the following features (or fixing any of the following problems) in
mpatrol for the old AmigaOS. Support for the new AmigaOS may be added in the
future.
- Perhaps add support for building mpatrol as an Amiga shared library. I
attempted to do this in a previous release of mpatrol, but it would have
involved too many source changes to get working fully. Perhaps it's not even
worth implementing as the archive library works fine. However, if it is built
as a shared library and
malloc()
and related functions are dynamically
linked in some executable files then perhaps it would be possible to override
these functions, thus getting the --dynamic option in the
mpatrol command to work.
- Need to fix the problem where the maximum guaranteed alignment of an internal
mpatrol library memory allocation is 8 bytes. However, this limitation does
not affect the
memalign()
and related functions, and should not have any
effect on the running of mpatrol since no datatypes require an alignment of more
than 8 bytes.
- Need to add proper support for call stack traversal for both the Motorola 680x0
and PowerPC processor architectures. When gcc is being used then
up to two stack frames can be traversed, but this should really be extended
without requiring
MP_BUILTINSTACK_SUPPORT
. When SAS/C is being used then
there is no support for call stack traversal.
- Need to add proper support for reading symbols from Amiga executable files.
When gcc is being used then the BFD library routines will be called
to determine the symbols from the executable file, but this will only work for
objects compiled with gcc and there currently appears to be a problem
getting the USEDEBUG option to work. When SAS/C is being used then
there is no support for reading symbols from executable files. Also need to add
support for reading symbols from any shared libraries that are required by the
program.
- Possibly make use of other software such as Enforcer, Mungwall or MuLib in order
to provide some form of memory protection. The features of SegTracker could
also be put to good use so that the file and hunk location of entries on the
call stack could be determined.
- Could add support for the EDIT and LIST options. This would
probably involve finding a way to invoke a shell script without having to search
for the script file or allocating memory in the process.
- Add GUI support for the mptrace command.
- When using SAS/C it is currently not possible to override the definition of
malloc()
, etc., without including the mpatrol.h header file
first. This is because the compiler startup code and libraries call
malloc()
before everything is set up, and so the library cannot properly
initialise itself if the malloc()
that the startup code finds is the
malloc()
in the mpatrol library. This restriction does not exist when
using gcc.
- Add support for the Amiga in the threads test in tests/pass/test5.c.
The Amiga doesn't really have support for threads but its processes are similar
enough to threads.
- Perhaps add an Installer installation script with icons.