| 84716 packages online |
|
|
| | | | No screenshot available |
|
This is a tiny tool useful for debugging (including Source). This is
interesting for people developing PPC Software and for Beta testers (to be
able to give the Developers very detailed bugreports).
If you get a PPC Crash requester due to a bug in your program, you can do:
gcc-WarpOS: checkstack <Address of the Crash> <A number>
StormC or vbcc-WarpOS or StormC-gcc: checkpo <Address of the Crash> <A number>
The "Address of the Crash" is the number in the r1 register (listed in the
Crash Requester). There are two different tools, as gcc-WarpOS uses internally
System V ABI, while the other compilers use PowerOpen.
You then get a stacktrace of <A number> deep output (each address points to one
step in the calling-hierarchy of the crash). If the hierarchy ends (you are at
top level) checkstack/checkpo aborts in advance.
Then you do: (memowner is not included in this archive, you need it seperately)
memowner <The Address checkstack/checkpo did output>
for all of them. For each you get an output like
Address - Owner
-------- -----
090A7464 - in SegList of MyProgramPPC Hunk 0001 Offset 0015b47c
090A7464 - in SegList of Process 0x08BF8160: Shell Process (MyProgramPPC)
Then you do (or if you are a Betatester the developer of the program does, after
you gave him the output of the memowner-calling, note that the developer needs
to compile the program with debugging support in order for this to work):
For PowerOpen-based-Compilers: (FindHit is not included, you need to get it
seperately)
FindHit <Program Name> <Hunk> <Offset>
(You will get the source line of the code JUST AFTER the function which CALLED
the crashed function).
For gcc-WarpOS (not StormC-gcc !!! StormC-gcc is PowerOpen bassed and uses
FindHit !!!)
pobjdump -d MyProgramPPC.woself --start-address = <Offset>
Here you get directly the address of the function which called the crashed
function.
You only get an offset into the ASM code of the function and the name of the
function,
and not the source code line like for PowerOpen-based compilers.
It is important that (for gcc-WarpOS) you did call the program with the
executable,
which was got by elf2exe2 (the normal thing for gcc-WarpOS compiled programs).
But
pobjdump gets the WarpOS-Elf as parameter. It is of course important that exe
and
WarpOS-ELF are from the same version of the source code, else it won't work.
To use this debugging-help you need one more thing installed, BTW: You need
segtracker,
which is not included in this archive.
In case of any questions feel free to pass me an email to
SteffenHhyperion-software.de
or MagicSNBirdland.es.bawue.de
|
Contents of dev/debug/checkstack.lha PERMSSN UID GID PACKED SIZE RATIO CRC STAMP NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic] 245 427 57.4% -lh5- d69d Sep 15 2000 checkpo.c
[generic] 16533 33368 49.5% -lh5- 29d2 Sep 15 2000 checkstack
[generic] 237 389 60.9% -lh5- ec45 Sep 15 2000 checkstack.c
[generic] 16532 33408 49.5% -lh5- d6d8 Sep 15 2000 checkpo
---------- ----------- ------- ------- ------ ---------- ------------ -------------
Total 4 files 33547 67592 49.6% Sep 16 2000
|
|
|
|
Aminet © 1992-2024 Urban
Müller and
the Aminet team.
Aminet contact address: <aminetaminet net> |