Next | Prev | Up | Top | Contents | Index
Application Bringup and Debugging
The first step in bringing up applications is to compile and run them at the lowest optimization level. Once a stable baseline of code is established, you can compare it with code that does not run, to isolate problems. This methodology is expanded upon as follows:
- Use the source base of a 32-bit working application which is compiled -mips2 (compiled with the ucode compilers).
- Compile -64 -mips4 -g and fix source problems. Refer to other sections in this Guide for help on general porting issues.
- Run the -64 -mips4 -g binaries on a PowerChallenge, R8000 IRIX 6 system. At this point the ucode 32-bit binaries, should also be run, side by side, on the PowerChallenge system to help isolate where the problems are creeping in.
- Repeat the previous step, going up the optimization scale.
- Compile -64, -mips4, -O3 and tune applications on Power Challenge to get the best perfromance. Refer to Chapter 6 in this Guide for help on tuning for the R8000.
The good news is that if you can get everything working -64 -mips4 -g, then you have a 64-bit baseline with which to compare non-working code. The MIPSpro compiler allows you to link object files compiled at different optimizations. By repeatedly linking objects from the working baseline, with those of the non-working set and testing the resulting application, you should be able to identify which objects from the non-working set are bad.
Once you have narrowed down your search to a small area of code, use the dbx debugger. You can then compare the variables and program behavior of your working application against the variables and program behavior of the code that fails. By isolating the problem to a line of code, you can then find the cause of the failure.
Next | Prev | Up | Top | Contents | Index