Short: CheckStack tool for WarpUP including Source Author: SteffenH@hyperion-software.de Uploader: SteffenH hyperion-software de Type: dev/debug Architecture: ppc-warpup 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
StormC or vbcc-WarpOS or StormC-gcc: checkpo
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 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 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 (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 = 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@hyperion-software.de or MagicSN@Birdland.es.bawue.de