AminetAminet
Search:
84450 packages online
About
Recent
Browse
Search
Upload
Setup
Services

dev/debug/checkstack.lha

Mirror:Random
Showing:ppc-warpupgeneric
No screenshot available
Short:CheckStack tool for WarpUP including Source
Author:SteffenH at hyperion-software.de
Uploader:SteffenH hyperion-software de
Type:dev/debug
Architecture:ppc-warpup
Date:2000-09-16
Download:http://aminet.net/dev/debug/checkstack.lha - View contents
Readme:http://aminet.net/dev/debug/checkstack.readme
Downloads:6296

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
SteffenH at hyperion-software.de
or MagicSN at Birdland.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>